日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java并发编程举例Runnable, Callable, Future, FutureTask, CompletionService

發(fā)布時間:2024/2/28 java 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java并发编程举例Runnable, Callable, Future, FutureTask, CompletionService 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
import java.util.concurrent.*;/*** Created by chenh on 2017/3/23.*/ public class ConcurrentDemo {// 沒有返回值//public interface Runnablepublic class RunnableTask implements Runnable{public void run() {System.out.println("run");}}//有返回值//public interface Callable<V>public class CallableTask implements Callable<String> {public String call() throws Exception {System.out.println("call");return "call";}}public void testRunnableTask(){ExecutorService executorService = Executors.newCachedThreadPool();//public interface Future<V>Future<?> future = executorService.submit(new RunnableTask());try {System.out.println("testRunnableTask: " + future.get());} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}executorService.shutdown();//new Thread(new RunnableTask()).start()}public void testCallableTask(){ExecutorService executorService = Executors.newCachedThreadPool();Future<?> future = executorService.submit(new CallableTask());try {System.out.println("testCallableTask: " + future.get());} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}executorService.shutdown();}public void testFutureTask1(){ExecutorService executorService = Executors.newCachedThreadPool();//public interface RunnableFuture<V> extends Runnable, Future<V>//public class FutureTask<V> implements RunnableFuture<V>FutureTask<String> futureTask = new FutureTask<String>(new RunnableTask(), "result");Future<?> future = executorService.submit(futureTask);try {System.out.println("testFutureTask: " + future.get());System.out.println("testFutureTask: " + futureTask.get());} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}executorService.shutdown();}public void testFutureTask2(){ExecutorService executorService = Executors.newCachedThreadPool();//public interface RunnableFuture<V> extends Runnable, Future<V>//public class FutureTask<V> implements RunnableFuture<V>FutureTask<String> futureTask = new FutureTask<String>(new CallableTask());Future<?> future = executorService.submit(futureTask);try {System.out.println("testFutureTask: " + future.get());System.out.println("testFutureTask: " + futureTask.get());} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}executorService.shutdown();}public class CallableTask2 implements Callable<Integer>{int id;public CallableTask2(int id){this.id = id;}public Integer call() throws Exception {return id;}}public void testCompletionService(){ExecutorService executorService = Executors.newCachedThreadPool();//public class ExecutorCompletionService<V> implements CompletionService<V>CompletionService<Integer> completionService = new ExecutorCompletionService<Integer>(executorService);for (int i=0; i<10; i++){completionService.submit(new CallableTask2(i));}for (int i=0; i<10; i++){try {System.out.println(completionService.take().get());} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}}executorService.shutdown();}public static void main(String[] args){ConcurrentDemo demo = new ConcurrentDemo();demo.testRunnableTask();demo.testCallableTask();demo.testFutureTask1();demo.testFutureTask2();demo.testCompletionService();} }


運行效果

run
testRunnableTask: null
call
testCallableTask: call
run
testFutureTask: null
testFutureTask: result
call
testFutureTask: null
testFutureTask: call
0
1
4
5
2
7
8
3
6
9


總結

以上是生活随笔為你收集整理的Java并发编程举例Runnable, Callable, Future, FutureTask, CompletionService的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。