안녕하세요 초보개발자 도깨비입니다.

 제가 현재 개발하고 있는 게임에서 3개의 int형 변수 A, B, C를 각각의 A_handler, B_handler, C_handler에서

A는 0.1, B는 0.12,  C는 0.15초마다 1씩 증가시켜 100이 되면 서로다른 특정 이벤트가 발생하고

다시 0으로 초기화 되는 일을 반복적으로 수행되게끔 하였습니다.

private Handler A_handler = new Handler() {
  @Override
  public void handleMessage(Message msg) {
   ++A;
   if(A < 100) A_handler.postDelayed(A_Runnable, (long)0.1);
   else {
    A_handler.removeCallbacks(A_Runnable);
    // 여기서는 A만의 특정 코드구현
   }
  }
 };
   
 private Runnable A_Runnable = new Runnable() {
   @Override
   public void run() {
    A_handler.sendEmptyMessage(0);
   }
 }; 

private Handler B_handler = new Handler() {
  @Override
  public void handleMessage(Message msg) {
   ++B;
   if(B < 100) B_handler.postDelayed(B_Runnable, (long)0.12);
   else {
    B_handler.removeCallbacks(B_Runnable);
    // 여기서는 B만의 특정 코드구현
   }
  }
 };
   
 private Runnable B_Runnable = new Runnable() {
   @Override
   public void run() {
    B_handler.sendEmptyMessage(0);
   }
 };

private Handler C_handler = new Handler() {
  @Override
  public void handleMessage(Message msg) {
   ++C;
   if(C < 100) C_handler.postDelayed(C_Runnable, (long)0.15);
   else {
    C_handler.removeCallbacks(C_Runnable);
    // 여기서는 C만의 특정 코드구현
   }
  }
 };
   
 private Runnable C_Runnable = new Runnable() {
   @Override
   public void run() {
    C_handler.sendEmptyMessage(0);
   }
 };


핸들러들은 모두 위에 코드식으로 구현되어 있습니다.  여기서 질문이 있습니다.

1 ) 3개의 hadler를 좀더 효율적으로 관리할 수 있는 방법은 없는 건지 알고싶습니다. 물론 세부적으로 정확히 하는 일은 
 틀리지만 기본적인 틀은 비슷하기에 혹시 간단히 합칠수 있는 방법을 알고싶습니다.

2 ) 지금 hadler가 구현되어 있는 클래스는 surfaceview를 상속받고 callback을 implements한 클래스 입니다. 여기서 handler를
생성할 때 new Handler()는 main쓰레드에서 동작이 되어진다고 알고있습니다. 혹시 이렇게 되면 게임의 속도 저하에 영향을 끼치는지
알고싶습니다. 만약 영향을 끼친다면 이 핸들러들을 main이 아닌 다른 Thread로 동작하게끔 하는 방법을 알고싶습니다.

두가지 질문 다 어떤 답변이든지 어떠한 예제링크이건 상관없습니다. 부디 도와주세요~!!