【发布时间】:2018-06-18 10:53:03
【问题描述】:
我想用CompletableFuture Java 8-9 启动线程,使用异步模式,这些是我的类和我的线程:
我有 3 个线程。我的课程包含一个方法myMethod()
Class_1 class_1 = new Class_1();
Class_2 class_2 = new Class_2();
Class_3 class_3 = new Class_3();
如下设置我的Runnables:
Runnable runnableClass_1 = new Runnable(){
public void run(){
class_1.myMethod();
try { Thread.sleep(0); } catch (InterruptedException e) { e.printStackTrace(); }
}
};
Runnable runnableClass_2 = new Runnable(){
public void run(){
class_2.myMethod();
try { Thread.sleep(0); } catch (InterruptedException e) { e.printStackTrace(); }
}
};
Runnable runnableClass_3 = new Runnable(){
public void run(){
class_3.myMethod();
try { Thread.sleep(0); } catch (InterruptedException e) { e.printStackTrace(); }
}
};
创建线程:
Thread t_1 = new Thread( runnableClass_1 );
Thread t_2 = new Thread( runnableClass_2 );
Thread t_3 = new Thread( runnableClass_3 );
最后,我的问题是如何使用CompletableFuture异步模式启动这三个线程。
【问题讨论】:
-
如果您不需要自己控制线程处理,您可以简单地使用
CompletableFuture.runAsync()。如果您需要更多控制,请使用带有Executor参数的版本并自定义您的Executor。最后,如果你真的需要使用这3个线程,你必须自己在Runnable中管理CompletableFutures。
标签: java multithreading asynchronous java-8 completable-future