最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java多線程Future和Callable類示例分享

 更新時(shí)間:2016年01月13日 10:19:21   投稿:hebedich  
JAVA多線程實(shí)現(xiàn)方式主要有三種:繼承Thread類、實(shí)現(xiàn)Runnable接口、使用ExecutorService、Callable、Future實(shí)現(xiàn)有返回結(jié)果的多線程。其中前兩種方式線程執(zhí)行完后都沒(méi)有返回值,只有最后一種是帶返回值的。今天我們就來(lái)研究下Future和Callable的實(shí)現(xiàn)方法

一,描寫敘述

    ​在多線程下編程的時(shí)候。大家可能會(huì)遇到一種需求,就是我想在我開(kāi)啟的線程都結(jié)束時(shí),同一時(shí)候獲取每一個(gè)線程中返回的數(shù)據(jù)然后再做統(tǒng)一處理,在這種需求下,F(xiàn)uture與Callable的組合就派上了非常大的用場(chǎng)。

也有人會(huì)說(shuō),我能夠使用同步來(lái)完畢這個(gè)需求啊,普通情況下確實(shí)能夠??墒窃谝环N特殊情況下就不行了:

    ​想象,你開(kāi)啟了多個(gè)線程同步計(jì)算一些數(shù)據(jù),可是大家都知道,線程是會(huì)爭(zhēng)用資源的,也就是說(shuō)。你開(kāi)啟多個(gè)線程來(lái)同步計(jì)算數(shù)據(jù)時(shí)。事實(shí)上線程之間的計(jì)算順序是不可空的,當(dāng)然除非你非非常大周折去處理也不無(wú)可能。在這樣的情況下。Future和Callable的組合就是不二之選了。

二,樣例

這兩個(gè)類的樣例事實(shí)上非常easy,主要就看自己在實(shí)際運(yùn)用中能不能找到他們的用武之地了。上代碼:

package test;
 
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
 
public class FetureCallableTest {
  private static ExecutorService service = Executors.newFixedThreadPool(100);
  private static int count = 1;
  public static void main(String[] args) throws InterruptedException, ExecutionException {
    int sum = 0;
    for(int i = 0; i < 100; i++) {
      Future<Integer> future = service.submit(new Callable<Integer>(){
   
        @Override
        public Integer call() throws Exception {
          System.out.println(Thread.currentThread().getName());
          return ++count;
        }
         
      });
      int f = future.get();
      sum += f;
      System.out.println("future is " + f);
    }
    System.out.println("sum is " + sum);
    service.shutdownNow();
  }
 
}

相關(guān)文章

最新評(píng)論

南丰县| 沁水县| 罗山县| 山西省| 栖霞市| 隆昌县| 泸西县| 青海省| 中宁县| 阿尔山市| 固始县| 双柏县| 黄冈市| 怀远县| 滁州市| 台安县| 临泽县| 汕尾市| 宝应县| 石棉县| 休宁县| 贡嘎县| 民权县| 新竹县| 姚安县| 盖州市| 禹州市| 东丰县| 孝昌县| 崇文区| 兴安县| 宣武区| 康平县| 莱阳市| 修武县| 汉阴县| 大埔县| 永寿县| 石景山区| 灌阳县| 米易县|