1. 程式人生 > >Java執行緒池關閉2-shutdown和awaitTermination

Java執行緒池關閉2-shutdown和awaitTermination

awaitTermination()是一個阻塞方法。它必須等執行緒池退出後才會結束自身。可以設定阻塞時間。

public class Test {

	public static void main(String[] args) throws IOException, InterruptedException {
		ExecutorService pool = Executors.newFixedThreadPool(2);
		for (int i = 0; i < 10; i++) {
			Runnable run = new Runnable() {
				@Override
				public void run() {
					System.out.println("執行緒執行" + Thread.currentThread().getName());
				}
			};
			service.execute(run);
		}
		pool.shutdown();
		while (!pool.awaitTermination(1, TimeUnit.SECONDS)) {
			System.out.println("執行緒池沒有關閉");
		}
		System.out.println("執行緒池已經關閉");
	}
}

相關推薦

Java執行關閉2-shutdownawaitTermination

awaitTermination()是一個阻塞方法。它必須等執行緒池退出後才會結束自身。可以設定阻塞時間。 public class Test { public static void main(String[] args) throws IOException, I

Java線程關閉1-shutdownisTerminated<轉>

ride shu csdn nat err interrupt .net fin cat shutdownvoid shutdown()啟動一次順序關閉,執行以前提交的任務,但不接受新任務。若已經關閉,則調用沒有其他作用。拋出:SecurityException - 如果安

Java執行架構(一)原理原始碼解析

在前面介紹JUC的文章中,提到了關於執行緒池Execotors的建立介紹,在文章:《java之JUC系列-外部Tools》中第一部分有詳細的說明,請參閱; 文章中其實說明了外部的使用方式,但是沒有說內部是如何實現的,為了加深對實現的理解,在使用中可以放心,我們這裡將做原始碼解析以及反饋到原理上

Java執行2)——執行中的幾個重要方法詳解

【內容摘要】 在java中,如果需要進行多執行緒程式設計,可以採用java自帶的執行緒池來實現,執行緒池對於我們新手來說是一個非常好的選擇,因為我們可以不用關心執行緒池中執行緒是如何排程的,避免在多執行緒程式設計過程產生死鎖等問題。在瞭解執行緒池的使用前,本文

Java執行種類、區別適用場景

newCachedThreadPool:底層:返回ThreadPoolExecutor例項,corePoolSize為0;maximumPoolSize為Integer.MAX_VALUE;keepAliveTime為60L;unit為TimeUnit.SECONDS;workQueue為Synchronou

java執行關閉執行中的執行

如果執行緒經常喜歡去new的話是不對的,你需要一個池子管理。 newCachedThreadPool 這個一個帶快取的執行緒池,是個可以無限大的執行緒池,新建的執行緒放倒這個池子裡,當執行緒停掉了的時候,下個個執行緒進來,可以複用這個執行緒。 newFixe

java執行(有返回值無返回值)

無返回值: package ThreadPool2; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class test { public stat

【小家Java】一次Java執行誤用(newFixedThreadPool)引發的線上血案總結

相關閱讀 【小家java】java5新特性(簡述十大新特性) 重要一躍 【小家java】java6新特性(簡述十大新特性) 雞肋升級 【小家java】java7新特性(簡述八大新特性) 不溫不火 【小家java】java8新特性(簡述十大新特性) 飽受讚譽 【小家java】java9

java執行資料庫連線[從學習到工作(二)]

背景:前段時間工作需要開發一個socket服務端,在接受到客戶端發過來的報文資訊後解析報文呼叫資料庫程式完成資料檔案的生成再拼湊結果報文反饋給客戶端。由於客戶數比較多,所以用執行緒池和資料庫連線池。        一.執行緒池   

Java執行-執行ThreadPoolExecutor構造方法規則 Java執行-執行ThreadPoolExecutor構造方法規則

Java多執行緒-執行緒池ThreadPoolExecutor構造方法和規則 2017年05月03日 17:15:37 閱讀數:40542 為什麼用執行緒池 部落格地址 http://blog.csdn.ne

Java執行-執行ThreadPoolExecutor構造方法規則

為什麼用執行緒池 有時候,系統需要處理非常多的執行時間很短的請求,如果每一個請求都開啟一個新執行緒的話,系統就要不斷的進行執行緒的建立和銷燬,有時花在建立和銷燬執行緒上的時間會比執行緒真正執行的時間還長。而且當執行緒數量太多時,系統不一定能受得了。 使用執

Java執行的理解認識

什麼是程式,什麼是程序,什麼是執行緒,他們有什麼區別? 程式是指令和資料的有序集合,其本身並沒有任何執行的含義,是一個靜態的概念。 程序是一個動態的過程,是一個活動的實體。簡單來說,一個應用程式得到執行就可以看作是一個程序。程序可以包含多個同時執行的執行緒 執行緒是

Java執行中submit()execute之間的區別?

一: submit()方法,可以提供Future < T > 型別的返回值。 executor()方法,無返回值。 execute無返回值 public void execute(Runnable command) { if (command == null)

java執行ThreadPoolExecutor阻塞佇列BlockingQueue,Executor, ExecutorService

ThreadPoolExecutor 引數最全的建構函式 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,

Java執行ThreadPoolExecutor使用分析(二)

   相關文章目錄:     execute()是 java.util.concurrent.Executor介面中唯一的方法,JDK註釋中的描述是“在未來的某一時刻執行命令command”,即向執行緒池中提交任務,在未來某個時刻執行,提交的任務必須實現

聊聊併發(三)Java執行的分析使用

1.    引言 合理利用執行緒池能夠帶來三個好處。第一:降低資源消耗。通過重複利用已建立的執行緒降低執行緒建立和銷燬造成的消耗。第二:提高響應速度。當任務到達時,任務可以不需要的等到執行緒建立就能立即執行。第三:提高執行緒的可管理性。執行緒是稀缺資源,如果無限制的建立,不僅會消耗系統資源,

jdk1.7的Java執行架構原理原始碼解析(ThreadPoolExecutor)

我們現在來看看ThreadPoolExecutor的原始碼是怎麼樣的,也許你剛開始看他的原始碼會很痛苦,因為你不知道作者為什麼是這樣設計的,所以本文就我看到的思想會給你做一個介紹,此時也許你通過知道了一些作者的思想,你也許就知道應該該如何去操作了。 這裡來看下構造方法中對那

java執行之ThreadPoolExecutor(二):任務入佇列任務丟棄

一、關於任務入佇列 在上一篇【java執行緒池之ThreadPoolExecutor(一)】中, ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10, 200, TimeUnit.MILLISECONDS,

Java併發程式設計:Java執行核心ThreadPoolExecutor的使用原理分析

引出執行緒池 執行緒是併發程式設計的基礎,前面的文章裡,我們的例項基本都是基於執行緒開發作為例項,並且都是使用的時候就建立一個執行緒。這種方式比較簡單,但是存在一個問題,那就是執行緒的數量問題。 假設有一個系統比較複雜,需要的執行緒數很多,如果都是採用這種方式來建立執行緒的話,那麼就會極大的消耗系統資源。

Java執行架構原理原始碼解析(ThreadPoolExecutor)

在前面介紹JUC的文章中,提到了關於執行緒池Execotors的建立介紹,在文章:《java之JUC系列-外部Tools》中第一部分有詳細的說明,請參閱;文章中其實說明了外部的使用方式,但是沒有說內部是如何實現的,為了加深對實現的理解,在使用中可以放心,我們這裡將做原始碼解析