java 다중 스레드 - 스레드 탱크
3845 단어 java 다중 루틴
데이터베이스 연결 탱크와 유사한 것은 스레드 탱크가 시스템이 시작될 때 대량의 빈 스레드를 만드는 것이다.프로그램이 Runnable 대상을 스레드 탱크에 전달하면, 스레드가 그 대상의run 방법을 실행하기 위해 스레드를 시작합니다.런 방법의 실행이 끝난 후에 이 루틴은 죽지 않고 루틴 탱크로 돌아가 빈 상태가 되어 다음 런블 대상을 실행하는run 방법을 기다립니다.
스레드 풀 생성
Java는 스레드 풀을 생성하는 Executors 공장 클래스를 제공합니다. 이 공장 클래스는 다음과 같은 몇 가지 정적 공장 방법으로 스레드 풀을 만들 수 있습니다.
4
4
4
4
4
위의 다섯 가지 방법 중 세 가지 방법은 Executor 서비스 대상을 되돌려줍니다. 이 대상은 하나의 루트 풀을 대표하고, Runnable 대상과Callable 대상이 대표하는 루트를 실행할 수 있습니다.다음 두 가지 방법은 ScheduledExecutor 서비스 대상을 되돌려줍니다. 이것은 Executor 서비스의 하위 클래스로 지정된 지연 후에 루틴 작업을 수행할 수 있습니다.
스레드 작업 수행
Executor 서비스 클래스는 스레드 작업을 수행하고 결과를 되돌려주는 submit 방법을 제공합니다. (만약 있다면)ScheduledExecutor 서비스는 schedule, scheduleAtFixedRate, scheduleAtFixedDelay 방법을 추가로 제공하여 루틴 작업 실행을 지연시킨다.
스레드 풀 닫기
하나의 스레드 탱크를 사용한 후, 스레드 탱크의 shutdown () 방법을 호출해야 합니다. 이 방법은 스레드 탱크의 닫기 시퀀스를 시작하고, shutdown () 방법을 호출한 스레드 탱크는 새로운 작업을 받지 않지만, 이전에 받은 작업을 처리합니다.스레드 탱크의 모든 임무를 수행한 후, 탱크의 모든 스레드는 사망할 것이다.또한 스레드 풀의 shutDownNow () 방법을 호출하여 스레드 풀을 닫을 수 있습니다. 이 방법은 실행 중인 모든 작업을 멈추고 대기 중인 작업을 일시 정지하고 대기 작업 목록을 되돌려줍니다.
총결산
스레드 풀을 사용하여 스레드 작업을 수행하려면 다음 단계를 따르십시오.
4
4
4
4
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPool {
public static void main(String[] args){
ExecutorService pool = Executors.newFixedThreadPool(3);
pool.submit(new MyThread() );
pool.submit(new MyThread() );
pool.submit(new MyThread() );
pool.shutdown();
}
}
class MyThread implements Runnable{
static int count = 0;
public void run(){
for(int i=0; i<10; i++){
System.out.println(Thread.currentThread().getName() + "-------" + i + "------" + count++);
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 멀티스레드 스레드 동기화이 Lock 자물쇠는 현식 생성, 잠금, 방출이 필요합니다.synchronized 키워드보다 현식 Lock 자물쇠는 사용이 번거롭고 사용 시 오류가 발생할 수 있지만 더욱 강력한 기능이 있습니다.locks 패키지에는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.