JAVA多線程框架

JAVA多線程框架

隨着硬件的不斷髮展,多核已經成爲主流,多核環境下的多線程問題也隨之而來,爲了使多線程處理更加方便,JDK1.5新增了多線程框架,相關接口和類主要位於java.util.concurrent包下。

多線程框架中比較重要的接口和類有Executors,Executor,ExecutorService,CompletionService,Future,CountDownLauch,Callable,Runnable

Executors功能主要是作爲工廠類,用於創建和管理Executor, ExecutorService, ScheduledExecutorService, ThreadFactory, and Callable

Executor,接口,主要功能執行實現Runnable的類

ExecutorService,主要用於管理多線程的整個生命週期,包括啓動,執行,結束線程.  可以提交實現Callable或者Runnable接口的類,會返回一個Future的對象,這個Future對象可以用於簡單的控制Callable對應的線程

Callable,跟Runable類似,同樣是封裝了線程需要的執行任務,執行任務在Callable的call方法中實現,唯一不同的是call方法有一個返回值。提交Callable實例時,會返回Future類的一個實例。通過Future類的實例,我們可以獲取線程結束後(也就是call函數執行完畢)的返回值

CompletionService,CompletionService提供了一種機制,可以理解成維護了一個任務完成隊列,當容器中有任務完成時,會加入到CompletionService的完成隊列中,那麼我們通過CompletionService的take 或者 poll方法,每次都能獲取剩餘任務中最先執行完的任務

實例代碼:

Executor executor = Executors.newFixedThreadPool(10);
Runnable task = new Runnable() {
	@Override
	public void run() {
		System.out.println("task executing");
	}
};
executor.execute(task);

更多實例代碼:

實例代碼




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章