国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 詳解JDK中ExecutorService與Callable和Future對線程的支持

詳解JDK中ExecutorService與Callable和Future對線程的支持

2021-01-08 11:59莫欺少年窮Java Java教程

這篇文章主要介紹了詳解JDK中ExecutorService與Callable和Future對線程的支持的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下

詳解JDKExecutorServiceCallableFuture線程的支持

1、代碼背景:

    假如有Thread1、Thread2、Thread3、Thread4四條線程分別統(tǒng)計C、D、E、F四個盤的大小,所有線程都統(tǒng)計完畢交給Thread5線程去做匯總,應當如何實現(xiàn)?

2、代碼:

    統(tǒng)計“盤子”大小的代碼,此處實現(xiàn)jdk中的Callable接口,

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.wang.test.concurrent;
 
import java.util.concurrent.Callable;
 
public class Task1 implements Callable<Integer> {
 
  private int x;
  private int y;
   
  public Task1(int x, int y) {
    this.x = x;
    this.y = y;
  }
 
  @Override
  public Integer call() throws Exception {
    return x*y;
  }
 
}

    統(tǒng)計匯總的代碼,也是實現(xiàn)jdk中的Callable接口,

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.wang.test.concurrent;
 
import java.util.concurrent.Callable;
 
public class Task2 implements Callable<Integer> {
 
  private int x;
  private int y;
  private int q;
  private int w;
   
  public Task2(int x, int y, int q, int w) {
    this.x = x;
    this.y = y;
    this.q = q;
    this.w = w;
  }
 
  @Override
  public Integer call() throws Exception {
    return x + y + q + w;
  }
 
}

     客戶端:使用JDK中Executors.newFixedThreadPool方法創(chuàng)建ExecutorService,ExecutorService的submit方法接收Callable接口的實現(xiàn),JDK內(nèi)部將弄成線程處理,使用Future接收submit方法的返回值,當future調(diào)用get方法時,如果線程還沒有執(zhí)行完,程序阻塞在這里,知道線程執(zhí)行完。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.wang.test.concurrent;
 
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
 
public class Client {
 
  public static void main(String[] args) throws Exception {
    ExecutorService pool = Executors.newFixedThreadPool(4);
 
    Task1 t1 = new Task1(1,2);
    Task1 t2 = new Task1(23,34);
    Task1 t3 = new Task1(23,456);
    Task1 t4 = new Task1(3,33);
    Future<Integer> f1 = pool.submit(t1);
    Future<Integer> f2 = pool.submit(t2);
    Future<Integer> f3 = pool.submit(t3);
    Future<Integer> f4 = pool.submit(t4);
     
    //Future調(diào)用get方法時,如果線程還沒有執(zhí)行完,程序阻塞在這里
    Task2 t5 = new Task2(f1.get(), f2.get(), f3.get(), f4.get());
    Future<Integer> f5 = pool.submit(t5);
     
    System.out.println(f5.get());
     
    pool.shutdown();
  }
}

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

原文鏈接:http://hejiawangjava.iteye.com/blog/2393827

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日本免费一区二区三区 | 中文字幕日韩欧美 | 欧美日本精品 | 亚洲日韩中文字幕一区 | 中文字幕亚洲欧美 | 亚洲视频在线观看免费 | 欧美成人精品一区二区三区 | 欧美激情在线播放 | 日韩电影一区二区在线观看 | 欧美一级高清免费 | 国产亚洲一区二区三区在线观看 | 亚洲一区二区三区视频 | 日韩视频区 | 国产精品第一国产精品 | 日韩在线观看第一页 | 亚洲一区二区在线播放 | 国产色在线观看 | av在线黄 | 欧美日韩国产精品 | 国产在线中文字幕 | 亚洲精品免费在线观看视频 | 国产精品亚洲综合 | 亚洲美女二区 | 国产a级毛片 | 国产精品美女久久久久av麻豆 | a国产在线 | 国产传媒一区 | 日本免费在线观看 | 久久国产精品久久久久久 | 亚洲一级片av | 国产精品九九久久99视频 | 亚洲欧美日韩国产 | 91看片淫黄大片一级在线观看 | 一级看片 | 国产精品一区二区三区四区五区 | 在线a视频网站 | 久久中文字幕一区二区 | 在线欧美亚洲 | 欧洲一区二区三区 | 亚洲国产精品视频一区二区三区 | 欧美日韩在线一区二区三区 |