假设有两个线程分别为t1和t2,它们开始时分别执行一些相互独立的运算,当执行到一半时t2依赖t1的一个中间结果(如一个条件)才能继续往下执行。实现这种需求的一种简单方式是轮询,下面的代码展示了使用轮询的方式实现需求:
package com.shaoshuidashi;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Explore {
boolean t1Conditon = false;
public static void main(String[] args) {
//启动两个线程分别执行thread1和thread2方法
final Explore e = new Explore();
ExecutorService es = Executors.newCachedThreadPool();
es.execute(new Runnable() {
public void run() {
try {
e.t1();
}catch (Exception e){
System.out.println(e);
}
}
});
es.execute(new Runnable() {
public void run() {
try {
e.t2();
}catch (Exception e){
System.out.