어떻게 리 셋 을 바탕 으로 자바 의 비동기 호출 을 실현 합 니까?
리 셋 은 쉽게 말 하면 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~!"}); //
}
}
이렇게 하면 리 셋 을 바탕 으로 비동기 호출 을 실현 하고 메시지 수신 자가 임 무 를 처리 한 후에 메시지 발송 자 를 호출 하 는 방법 을 실현 할 수 있다.비동기 호출 의 유사 한 실현 은 그림 로드 가 느 릴 때 모호 한 그림 을 먼저 불 러 오고 그림 로드 가 완 료 된 후에 부분 적 인 리 셋 을 할 수 있 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바를 잡아버려 (1)나의 생각을 적고 복습을 해버릴 것 이다 책을 펼치자 마자 나오는 설명인데 그 안의 내용을 실행하게 된다 라고 설명을 해준다 아래 소스코드와 실행 결과로 위에 설명을 보충해준다 사칙연산과 나머지를 계산하는 것 비교연...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.