>Java >java지도 시간 >비동기 호출을 구현하는 Java 코드 예제

비동기 호출을 구현하는 Java 코드 예제

不言
不言앞으로
2019-03-07 17:15:392673검색

이 기사는 Java에서 비동기 호출을 구현하는 방법에 대한 코드 예제를 제공합니다. 이는 특정 참조 가치가 있으므로 도움이 필요한 친구가 될 수 있기를 바랍니다.

먼저 제가 겪은 문제는 인터페이스가 호출될 때 캐시를 업데이트해야 한다는 것인데, 캐시 업데이트가 빠른 속도로 진행되기 때문에 필요한 결과를 반환하기 위해 비동기 호출을 할 계획입니다. 캐시가 업데이트될 때 필요한 것은 아닙니다. 주의

더 이상 말도 안 되는 소리는 하지 마세요. 코드에 대해 이야기합시다

public class MyExecutor {
    private ExecutorService executor = Executors.newCachedThreadPool() ;
    public void fun() throws Exception {
        executor.submit(new Runnable(){
            @override
                public void run() {
                    try {
                        //要执行的业务代码,我们这里没有写方法,可以让线程休息几秒进行测试
                        Thread.sleep(10000);
                        System.out.print("睡够啦~");
                    }catch(Exception e) {
                        throw new RuntimeException("报错啦!!");
                    }
                }
        });
    }
}
public class Demo{
    
    public static void main(String[] args) {
        
         MyExecutor  myExecutor = new MyExecutor();
         try {
            myExecutor.fun();
            System.our.print("你先睡着,我先回家啦~");
        }catch(Exception e) {
             throw new RuntimeException("业务程序报错啦!!");
        }
    }
}

좋아, 코드는 여기 있습니다. (ps: 입력할 때 실수가 있으면 죄송합니다. by hand)

메인 메소드 실행

먼저 인쇄됩니다 (당신이 먼저 잠들고, 내가 먼저 집에 갑니다~)

그 다음 (충분히 자요~)

즉, 메인 프로그램이 결과를 반환했습니다 비동기적으로 실행해야 하는 메서드가 완료되기 전에 계속 기다릴 필요가 없습니다. 이렇게 하면 프로그램이 먼저 결과를 반환한 다음 대기가 필요한 번거로운 작업을 계속할 수 있습니다. 비동기 메서드가 실행되었는지 확인합니다.

Executors 클래스에 대해 이야기해 보겠습니다.

이 클래스는 스레드 풀을 생성하는 데 사용됩니다.

여러 가지 메서드가 있습니다

1. newFixedThreadPool()은 스레드 풀의 크기가 최대에 도달하면 고정된 크기의 스레드 풀을 생성합니다. 값은 변경되지 않습니다. 실행 예외로 인해 스레드가 종료되면 스레드 풀은 새 스레드를 추가합니다

2. 스레드 풀의 크기가 스레드를 초과하면 newCachedThreadPool()이 생성됩니다. 작업을 처리하는 데 필요한 경우 일부 유휴 스레드(60초 동안 작업을 실행하지 않음)가 재활용됩니다. 작업 수가 증가하면 이 스레드 풀은 작업을 처리하기 위해 지능적으로 새 스레드를 추가할 수 있습니다. 이 스레드 풀은 스레드 풀의 크기를 제한하지 않습니다. 스레드 풀의 크기는 시스템(JVM)이 생성할 수 있는 최대 스레드 크기에 따라 완전히 달라집니다. 3. newSingleThreadExecutor()는 단일 스레드 스레드 풀을 생성합니다. 이 스레드 풀에는 작동하는 스레드만 있습니다. 이는 모든 작업을 순차적으로 실행하는 단일 스레드와 동일합니다. 유일한 스레드가 비정상적으로 종료되면 새 스레드가 이를 대체합니다. 이 스레드 풀은 모든 작업이 제출된 순서대로 실행되도록 보장합니다

4. newScheduledThreadPool()은 무제한 크기의 스레드 풀을 생성합니다. 이 스레드 풀은 작업의 타이밍 및 주기적인 실행을 지원합니다

5. ()는 단일 스레드 스레드 풀을 생성합니다. 이 스레드 풀은 작업의 타이밍과 주기적인 실행을 지원합니다

위 내용은 비동기 호출을 구현하는 Java 코드 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제