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

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

Mar 07, 2019 pm 05:15 PM
java

이 기사는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

자바의 제곱근 자바의 제곱근 Aug 30, 2024 pm 04:26 PM

자바의 제곱근

자바의 완전수 자바의 완전수 Aug 30, 2024 pm 04:28 PM

자바의 완전수

Java의 난수 생성기 Java의 난수 생성기 Aug 30, 2024 pm 04:27 PM

Java의 난수 생성기

자바의 암스트롱 번호 자바의 암스트롱 번호 Aug 30, 2024 pm 04:26 PM

자바의 암스트롱 번호

자바의 웨카 자바의 웨카 Aug 30, 2024 pm 04:28 PM

자바의 웨카

Java Spring 인터뷰 질문 Java Spring 인터뷰 질문 Aug 30, 2024 pm 04:29 PM

Java Spring 인터뷰 질문

Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까? Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까? Feb 07, 2025 pm 12:09 PM

Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까?

Java의 스미스 번호 Java의 스미스 번호 Aug 30, 2024 pm 04:28 PM

Java의 스미스 번호

See all articles