Effective Java 제10장 제3절
JDK1.5 이후 합병 라인 구조를 도입하면 이종 다중 라인 문제를 더욱 우아하게 실현할 수 있을 뿐만 아니라 라인 탱크, 정시 반복 작업 등 강력한 기능을 제공할 수 있다.
동시 스레드 프레임워크는 기본적으로 다음과 같이 사용됩니다.
//
ExecutorService executor = Executors.newSingleThreadExecutor();
//
executor.execute(runnable);
//
executor.shutdown();
스레드 프레임워크에서 스레드 풀을 만드는 방법은 다음과 같습니다.
//
ExecutorService executor = Executors.newCachedThreadPool();
//
ExecutorService executor = Executors.newFixedThreadPool(int threadNum);
스레드 프레임워크는 다음과 같은 타이밍 작업을 만듭니다.
//
ScheduleExecutorService executor = Executors.newSingleThreadScheduleExecutor();
//
ScheduleExecutorService executor = Executors.newScheduleThreadPool(int threadNum);
//
executor.schedule(Runnable runnable, long delay, TimeUnit unit);
// , ,
executor.scheduleAtFixedRate(Runnable runnable, long initialDelay, long period, TimeUnit unit);
// , ,
executor.scheduleWithFixedDelay(Runnable runnable, long initialDelay, long delay, TimeUnit unit);
Timer와 스레드 풀 작업 시간대 비교:
4
4
너는 가능한 한 자신의 작업 대기열을 작성하지 말아야 할 뿐만 아니라, 가능한 한 직접 라인을 사용하지 말아야 한다.이제 중요한 추상은 더 이상 Thread가 아니다. 이전에는 업무 단원이자 집행 메커니즘이었다.현재 업무 단원과 집행 메커니즘은 분리되어 있다.현재 관건적인 추상은 작업 단원으로 임무(task)라고 부른다.작업은 두 가지가 있습니다: Runnable과 가까운 Callable (이것은 Runnable와 유사하지만 값을 되돌려줍니다.)임무를 수행하는 일반적인 메커니즘은excutor 서비스입니다.만약 당신이 임무의 측면에서 문제를 보고,exeutor 서비스로 당신을 대신해서 임무를 수행하게 한다면, 적당한 집행 전략을 선택하는 데 매우 유연성을 얻을 수 있을 것이다.본질적으로 Executor Framework가 하는 일은 집행이다. 마치 Collections Framework가 하는 일이 모이는 것과 같다.
엔지니어링 SingleThreadPool 클래스를 참조하여 학습할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.