어떻게 리 셋 을 바탕 으로 자바 의 비동기 호출 을 실현 합 니까?

비동기 란 호출 이 발 송 된 후 호출 자가 즉각 결 과 를 얻 지 못 하고 호출 이 발 송 된 후 호출 자가 호출 자 에 게 알 리 거나 호출 함 수 를 통 해 이 호출 을 처리 하 는 것 을 말한다.
리 셋 은 쉽게 말 하면 B 중 에 A 가 하나 있다 는 것 이다.그러면 A 는 B 의 어떤 방법 을 호출 할 때 실제 적 으로 자신의 방법 으로 호출 되 었 다.
리 셋 을 이용 하여 자바 의 비동기 호출 을 실현 할 수 있 으 며,아래 의 예 는 인터넷 에서 나온다.
리 셋 인터페이스:

public interface CallBack { 
  /** 
   *        
   * @param objects                     
   */ 
  public void execute(Object... objects ); 
}
메시지 발송 자:

/**
 *          
 */
public class Local implements CallBack,Runnable{ 
  
  private Remote remote; 
   
  /** 
   *         
   */ 
  private String message; 
   
  public Local(Remote remote, String message) { 
    super(); 
    this.remote = remote; 
    this.message = message; 
  } 
 
  /** 
   *      
   */ 
  public void sendMessage() 
  { 
    /**       **/ 
    System.out.println(Thread.currentThread().getName()); 
    /**            **/ 
    Thread thread = new Thread(this); 
    thread.start(); 
    /**        **/ 
    System.out.println("Message has been sent by Local~!"); 
  } 
 
  /** 
   *            
   */ 
  public void execute(Object... objects ) { 
    /**       **/ 
    System.out.println(objects[0]); 
    /**           **/ 
    System.out.println(Thread.currentThread().getName()); 
    /**         **/ 
    Thread.interrupted(); 
  } 
   
  public static void main(String[] args) 
  { 
    Local local = new Local(new Remote(),"Hello"); 
     
    local.sendMessage(); 
  } 
 
  public void run() { 
    remote.executeMessage(message, this); //          ,      ,              ,                        
  } 
}
메시지 수신 자:

/**
 *           
 */
public class Remote { 
 
  /** 
   *      
   * @param msg        
   * @param callBack         
   */ 
  public void executeMessage(String msg,CallBack callBack) 
  { 
    /**             ,          **/ 
    for(int i=0;i<1000000000;i++) 
    { 
       
    } 
    /**       ,       **/ 
    System.out.println(msg); 
    System.out.println("I hava executed the message by Local"); 
    /**    **/ 
    callBack.execute(new String[]{"Nice to meet you~!"}); //                
  } 
   
}
이렇게 하면 리 셋 을 바탕 으로 비동기 호출 을 실현 하고 메시지 수신 자가 임 무 를 처리 한 후에 메시지 발송 자 를 호출 하 는 방법 을 실현 할 수 있다.
비동기 호출 의 유사 한 실현 은 그림 로드 가 느 릴 때 모호 한 그림 을 먼저 불 러 오고 그림 로드 가 완 료 된 후에 부분 적 인 리 셋 을 할 수 있 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기