이 글에서는 Java 비동기식에 대해 소개하겠습니다. 모든 분들께 도움이 되기를 바랍니다.
비동기: 비동기는 동기와 반대입니다. 비동기 프로시저 호출이 실행되면 호출자는 결과를 얻기 전에 후속 작업을 계속 수행할 수 있습니다.
즉, 비동기 메서드가 코드를 실행하는 데 시간이 얼마나 걸리더라도 메인 스레드에 영향을 미치지 않으며 메인 스레드는 계속해서 아래쪽으로 실행될 수 있습니다.
예: 포크가 있는 수도관, 포크는 비동기 호출 입구입니다.
포트 A는 메인 스레드이고 포트 B는 보조 스레드입니다. 무언가가 포트 B를 막으면 포트 A를 통한 물의 흐름에 영향을 미치지 않습니다.
콜백 인터페이스 정의
비동기 코드가 실행된 후 결과에 일부 처리가 필요한 경우가 많습니다.
따라서 비동기 결과를 처리할 인터페이스를 정의하세요.
/** * 定义回调接口 * @author YZQ * */ public interface MyCallback { /** * 定义处理回调方法 * @param object */ void callback(Object object); }
비동기 구현 클래스 정의
/** * 异步任务类 * @author YZQ * */ public class AsynTask { /** * 处理任务 * @param myCallback 处理完任务后的回调 */ public void task(final MyCallback myCallback){ Thread thread=new Thread(new Runnable() { @Override public void run() { try { //线程睡眠3秒,模拟该线程执行时间过长,也就是上面说的【B口有东西塞住】 Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } //完成0到99的累加 int sum=0; for(int i=0;i<p><strong>테스트: </strong><br></p><pre class="brush:php;toolbar:false">/** * 测试类 * @author YZQ * */ public class Test { public static void main(String[] args) { //调用异步任务 new AsynTask().task(new MyCallback() { //实现回调方法 @Override public void callback(Object object) { System.out.println("异步回调处理:值 "+object); } }); System.out.println("主线程等待异步输出"); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } } }
다음과 같이 볼 수 있습니다.
메인 스레드는 먼저 [메인 스레드가 비동기 출력을 기다립니다]를 출력합니다. 보조 스레드는 [비동기 콜백 처리: 값 4950]을 출력합니다.
관련 학습 권장 사항:
위 내용은 Java 비동기는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!