1. 程式人生 > >java自定義執行緒池--ThreadPoolExecutors

java自定義執行緒池--ThreadPoolExecutors

public class MyThreadPool {

	public static void main(String[] args) {
		/**
		 * 1.在使用有界佇列的時候:若有新的任務需要執行,如果執行緒池實際執行緒數小於corePoolSize核心執行緒數的時候,則優先建立執行緒。
		 * 若大於corePoolSize時,則會將多餘的執行緒存放在佇列中,
		 * 若佇列已滿,且最請求執行緒小於maximumPoolSize的情況下,則自定義的執行緒池會建立新的執行緒,
		 * 若佇列已滿,且最請求執行緒大於maximumPoolSize的情況下,則執行拒絕策略,或其他自定義方式。
		 */
		ThreadPoolExecutor pool = new ThreadPoolExecutor(// 自定義一個執行緒池
				1, // coreSize
				2, // maxSize
				60, // 60s
				TimeUnit.SECONDS, new ArrayBlockingQueue<>(3) // 有界佇列,容量是3個
		);

		MyTask task1 = new MyTask(1, "task1");
		MyTask task2 = new MyTask(2, "task2");
		MyTask task3 = new MyTask(3, "task3");
		MyTask task4 = new MyTask(4, "task4");
		MyTask task5 = new MyTask(5, "task5");
		MyTask task6 = new MyTask(6, "task6");
		/**
		 * 此處可以一步步開啟看執行結果是不是符合上面註釋所說的情況。
		 */
		pool.execute(task1);
		pool.execute(task2);
		pool.execute(task3);
		pool.execute(task4);
		// pool.execute(task5);
		// pool.execute(task6);

		pool.shutdown();
	}

}
建立了一個自定義的執行緒池。

相關推薦

java定義執行--ThreadPoolExecutors

public class MyThreadPool { public static void main(String[] args) { /** * 1.在使用有界佇列的時候:若有新的任務需要執行,如果執行緒池實際執行緒數小於corePoolSize核心執行緒數的時候,則優先建立執行緒。

Java定義執行執行總數控制

1 概述池化是常見的思想,執行緒池是非常典型的池化的實現,《Java併發程式設計實戰》也大篇幅去講解了Java中的執行緒池。本文實現一個簡單的執行緒池。 2 核心類 【1】介面定義 public interface IThreadPool<Job extends

八、JAVA執行執行原理以及定義執行 ThreadPool

為什麼會需要執行緒池技術? (1)Thread是一個重量級的資源,它的建立,啟動以及銷燬都是比較耗費效能的;重複利用執行緒,減少執行緒建立,銷燬的開銷,是一種好的程式設計習慣。 (2)通過new Thread的方法建立執行緒難以管理,並且難以控制數量,執行緒的數量通常和系統的效能呈拋

java ThreadPoolExecutor 定義執行優勢

java併發執行緒池建議還是多多使用ThreadPoolExecutor的建構函式來設定自定義的執行緒池,先來看看這個建構函式的引數列表。 /** * Creates a new {@code ThreadPoolExecutor} wi

2.3四種執行連線的配置和使用(和定義執行

四種執行緒連線池的配置和使用 最終呼叫類和方法 {引數有 核心執行緒數目,最大執行緒數目,存活時間(當前執行緒執行完這個任務之後,等待下一個任務到來的最長等待時間。如果在這個時間內沒有新的任務來到,那當前執行緒就會退出),時間單位,等待佇列(用於存放待執行的任務)} public

Python 定義執行

"""思路1,將任務放在佇列 1)建立佇列:(初始化) 2)設定大小,執行緒池的最大容量 3)真實建立的執行緒 列表 4)空閒的執行緒數量2,著手開始處理任務 1)建立執行緒 2)空閒執行緒數量大於0,則不再建立執行緒 3)建立執行緒池的數量 不能高於

定義執行、內建執行.md

自定義簡單執行緒池 python執行緒是可以重複利用的,如果呼叫的時候每次都建立一個執行緒,則太浪費資源了 我把多執行緒比作服務員,每次有客人來的時候,都分配一個專門的服務員去服務; 當客人走了之後,服務員回到空閒狀態,繼續等待新的客人 import threa

Spring Boot 基礎系列教程 | 第三十二篇:使用@Async實現非同步呼叫:定義執行

推薦 Spring Boot/Cloud 視訊: 在之前的Spring Boot基礎教程系列中,已經通過《Spring Boot中使用@Async實現非同步呼叫》一文介紹過如何使用@Async註解來實現非同步呼叫了。但是,對於這些非同步執行的控制是我們保障自身

使用java執行

  java提供自帶的執行緒池,而不需要自己去開發一個自定義執行緒池了。 執行緒池類 ThreadPoolExecutor在包java.util.concurrent下 &nb

定義執行Executors

在使用有界佇列時,若有新的任務需要執行,如果執行緒池實際執行緒數小於corePoolSize,則優先建立執行緒,若大於corePoolSize,則會將任務加入佇列,若佇列已滿,則在匯流排程數不大於maximumPoolSize的前提下,建立新的執行緒,若執行緒數

Executors提供的四種執行定義執行

  執行緒池的思想是一種物件池的思想,開放一塊記憶體空間,裡面存放了眾多(未死亡)的執行緒,池中執行緒執行排程由池管理器來處理。當有執行緒任務時,從池中取一個,執行完畢,物件歸還給池。這樣可以避免反覆建立執行緒物件所帶來的效能開銷,節省了系統的資源。 一、固定大小

java執行和佇列詳細講解

Java執行緒池使用說明 一簡介 執行緒的使用在java中佔有極其重要的地位,在jdk1.4極其之前的jdk版本中,關於執行緒池的使用是極其簡陋的。在jdk1.5之後這一情況有了很大的改觀。Jdk1.5之後加入了java.util.concurrent包,這個包中主要介紹j

Java執行技術之二 Java執行實現

一,介紹   類檢視如下:     自Java 1.5後,Java對執行緒相關的庫做了很大的拓展,執行緒池就是其中之一。Java執行緒的新特性多數在java.util.concurrent,其包含眾多的介面和類。其中java.util.concurrent.Execut

java定義執行(兩種方法)

知識點總結 java中的執行緒模型:一個虛擬cpu,多個執行緒 static start方法:啟動執行緒而非執行執行緒(僅僅告訴虛擬機器,該執行緒已經準備完畢,cup決定執行緒執行的時刻) static sleep方法:在制定的毫秒數

java.jse-執行-執行-java執行和佇列詳細講解

Java執行緒池使用說明 一簡介 執行緒的使用在java中佔有極其重要的地位,在jdk1.4極其之前的jdk版本中,關於執行緒池的使用是極其簡陋的。在jdk1.5之後這一情況有了很大的改觀。Jdk1.5之後加入了java.util.concurrent包,這個包中主要介紹

定義執行ThreadPoolExecutor

public ThreadPoolExecutor (int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQu

程式設計師過關斬將--定義執行來實現文件轉碼

背景 我司在很久之前,一位很久之前的同事寫過一個文件轉圖片的服務,具體業務如下: 使用者在客戶端上傳文件,可以是ppt,word,pdf 等格式,使用者上傳完成可以在客戶端預覽上傳的文件,預覽的時候採用的是圖片形式(不要和我說用別的方式預覽,現在已經來不及了) 當用戶把文件上傳到雲端之後(阿里雲),把文件相

定義執行影響的線上事故

  作為一個牛逼的程式設計師,相信大家肯定是接觸過多執行緒的概念的。並且可能會在實際的工作中因為一些業務場景需要使用自定義執行緒池來執行批量的任務或對執行緒進行管理。同樣,我們專案中也存在一個兩個場景需要使用執行緒池。而這兩個場景分別為: 1、持續監聽某個外部介面的不間斷的返回資訊,其實就是長連結的阻塞介面,

化技術——定義執行

目錄 池化技術——自定義執行緒池 1、為什麼要使用執行緒池? 1.1、池化技術的特點: 1.2、執行緒池的好處: 1.3、如何自定義一個執行緒池 2、三大方法

Java併發程式設計:Java的四種執行的使用,以及定義執行工廠

目錄 引言 四種執行緒池 newCachedThreadPool:可快取的執行緒池 newFixedThreadPool:定長執行緒池 newSingleThreadExecutor:單執行緒執行緒池 newScheduledThreadPool:支援定時的定