自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java自帶的Future多線程模式

開發(fā) 后端
如果你用過Java并發(fā)包也許對Future(interface)比較熟悉了,其實Future 本身是一種被廣泛運用的并發(fā)設(shè)計模式,可在很大程度上簡化需要數(shù)據(jù)流同步的并發(fā)應(yīng)用開發(fā)。

在Java5后,提供了大量處理多線程的接口,以前只是簡單的使用其線程池,最近發(fā)現(xiàn)Future模式也有。

只貼出了部分代碼:

定義池:

  1. private static final ExecutorService worker = Executors.newFixedThreadPool(N);// 線程池 
  2.     private static List<Future<?>> futureList = new ArrayList<Future<?>>();// 工作中的線程 

使用線程池:

  1. futureList.add(worker.submit(this)); 

結(jié)束線程:

  1. // 結(jié)束線程池中的線程執(zhí)行(中斷) 
  2.     public static void cancel() { 
  3.         for (Future<?> f : futureList) { 
  4.             f.cancel(true); 
  5.         } 
  6.     } 

注:Future為線程的執(zhí)行結(jié)果票據(jù),當(dāng)使用Callable方式執(zhí)行時可以得到線程的執(zhí)行結(jié)果f.get(),同時也可以控制某線程的結(jié)束和執(zhí)行狀態(tài)。當(dāng)使用Runnable方式執(zhí)行時,得到結(jié)果是空,但也可以對線程進行控制。

補充:
應(yīng)該是調(diào)用了線程的中斷方法Thread.currentThread().interrupt();但并不像stop方法那樣立即結(jié)束掉子線程,而是改變了中斷的信號量Thread.interrupted(),在阻塞的線程會拋出InterruptedException異常,但是在非阻塞的條件下子線程會繼續(xù)執(zhí)行,需要在循環(huán)中自己判斷信號量來拋出異常。

原文鏈接:http://sunnymoon.iteye.com/blog/1260604

編輯推薦:

  1. JAVA設(shè)計模式:工廠模式之簡單工廠
  2. 多核平臺下的Java優(yōu)化
  3. Java枚舉常見7種用法
  4. 詳解JavaFX架構(gòu)與框架
  5. AIX環(huán)境下的Java性能調(diào)優(yōu)
責(zé)任編輯:林師授 來源: sunnymoon的博客
相關(guān)推薦

2022-06-02 11:12:10

CallableFuture

2013-05-23 15:59:00

線程池

2021-04-12 08:56:00

多線程Future模式

2022-03-31 07:52:01

Java多線程并發(fā)

2009-03-12 10:52:43

Java線程多線程

2021-09-11 15:26:23

Java多線程線程池

2021-12-26 18:22:30

Java線程多線程

2009-06-29 17:49:47

Java多線程

2012-02-14 12:31:27

Java

2009-08-12 13:22:44

Singleton模式

2009-06-29 18:03:15

Java多線程線程的生命周期

2023-11-22 08:37:40

Java線程池

2010-03-15 17:56:23

Java多線程

2009-07-21 17:09:47

ASP.NET多線程

2009-06-11 11:17:59

Java多線程

2015-11-18 18:56:36

Java多線程處理

2009-06-16 13:48:42

Java多線程

2012-09-21 13:30:51

Java多線程Java發(fā)展

2016-11-10 16:30:22

Java多線程

2020-09-08 10:56:55

Java多線程存儲器
點贊
收藏

51CTO技術(shù)棧公眾號