java已经有4种线程同步工具,CyclicBarrier适合当一些线程达到某种状态的时候然后一起运行,理论很简单,直接上代码了
public static void main(String[] args) {
CyclicBarrier barrier = new CyclicBarrier(1, new Runnable() {//线程同步器,保证给定次数调用await的时候让新线程运行
@Override
public void run() {
System.out.println("b");
}
});
new Thread(new Runnable(){
@Override
public void run() {
for(int i=0;i<5;i++){//打印5次a
System.out.println("a");
try {
barrier.await();//另一个线程执行
} catch (Exception e) {
e.printStackTrace();
}
}
}}).start();
}