>  기사  >  Java  >  Java 스레드 풀의 네 가지 생성 방법을 간략하게 요약합니다.

Java 스레드 풀의 네 가지 생성 방법을 간략하게 요약합니다.

WBOY
WBOY앞으로
2022-07-21 17:55:371781검색

이 기사에서는 java에 대한 관련 지식을 제공합니다. 주로 Java 스레드 풀의 4가지 생성 방법에 대한 자세한 분석을 소개합니다. 연결 풀은 이러한 연결의 버퍼 풀을 생성하고 관리하는 기술입니다. 필요한 스레드 사용법에 대해서는 아래에서 살펴보겠습니다. 이것이 모든 사람에게 도움이 되기를 바랍니다.

Java 스레드 풀의 네 가지 생성 방법을 간략하게 요약합니다.

추천 학습: "java 비디오 튜토리얼"

머리말

스레드 풀에 대해 이야기하기 전에 먼저 연결 풀의 정의를 추가하겠습니다

연결 풀은 연결을 생성하고 관리하는 기술입니다. buffer pool , 이러한 연결은 필요한 모든 스레드에서 사용할 준비가 되어 있습니다.

다음과 같이 연결 풀의 역할을 볼 수 있습니다.

1. 스레드 풀(영어: 스레드 pool)

: 스레드 사용 패턴. 스레드가 너무 많으면 예약 오버헤드가 발생하여 캐시 지역성과 전체 성능에 영향을 미칩니다. 스레드 풀은 여러 스레드를 유지 관리하며 감독자가 동시에 실행할 수 있는 작업을 할당할 때까지 기다립니다. 이렇게 하면 수명이 짧은 작업을 처리할 때 스레드를 생성하고 삭제하는 비용이 방지됩니다. 스레드 풀은 코어의 전체 활용을 보장할 뿐만 아니라 과도한 스케줄링도 방지할 수 있습니다.

특징:

리소스 소비 감소:
    생성된 스레드를 재사용하여 스레드 생성 및 소멸로 인한 소비를 줄입니다. 응답 속도 향상: 작업이 도착하면 스레드 생성을 기다리지 않고 즉시 작업을 실행할 수 있습니다. 스레드 관리 효율성 향상:
  • 스레드는 부족한 리소스입니다. 제한 없이 생성되면 시스템 리소스를 소비할 뿐만 아니라 시스템 안정성도 저하됩니다. 스레드 풀을 사용하면 통합 할당, 조정 및 모니터링을 수행할 수 있습니다. 기능은 다음과 같습니다.

기존 스레드를 재사용하고, 개체 생성 및 삭제 비용을 줄이고, 최대 동시 스레드 수를 효과적으로 제어하고, 시스템 리소스 활용도를 향상하고, 과도한 리소스 경쟁과 혼잡을 방지합니다. 예약 실행, 주기적 실행, 단일 스레드, 동시성 제어 등의 기능을 제공합니다.

구체적인 아키텍처는 다음과 같습니다.

2. 생성 방법

4가지 생성 방법이 있습니다: 단일 스레드 풀, n 스레드 풀, 확장 가능한 스레드 풀, 타이밍 풀 및 주기적 스레드

Executors.newFixedThreadPool(int)최대 동시성 수를 제어하는 ​​N 스레드 풀, 초과 스레드는 대기열에서 대기합니다

ExecutorService threadPool1 = Executors.newFixedThreadPool(5); //5个窗口

Executors.newSingleThreadExecutor()하나의 풀, 하나의 스레드

 ExecutorService threadPool2 = Executors.newSingleThreadExecutor(); //一个窗口

Executors.newCachedThreadPool()하나의 풀을 확장하여 필요에 따라 스레드를 생성할 수 있으며, 유휴 스레드를 유연하게 재활용할 수 있습니다.
스레드 실행 후 , 확장하지 않고도 계속 사용할 수 있습니다Executors.newFixedThreadPool(int)一池N线程,控制最大的并发数,超出的线程会在队列中等待

 ExecutorService threadPool3 = Executors.newCachedThreadPool();

Executors.newSingleThreadExecutor()一池一线程

//表示延迟一秒,后执行3秒
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
scheduledThreadPool.scheduleAtFixedRate(new Runnable() {
      @Override
      public void run() {
          log.info("delay 1 seconds, and excute every 3 seconds");
 
      }
}, 1, 3, TimeUnit.SECONDS);

Executors.newCachedThreadPool()一池可扩容根据需求创建线程,可灵活回收空闲线程
执行完线程,可不用再扩建继续使用

rrreee

Executors.newScheduledThreadPool()rrreee

Executors.newScheduledThreadPool(), 예약 및 주기적인 작업 실행 지원

rrreee권장 학습: "java 비디오 튜토리얼

"🎜

위 내용은 Java 스레드 풀의 네 가지 생성 방법을 간략하게 요약합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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