import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
/**
* Condition实现线程间通信
* @author ETHAN
*
*/
public class ThreeConditionCommunicationTest {
public static void main(String[] args) {
final Business business = new Business();
new Thread(new Runnable() {
@Override
public void run() {
for(int i=1;i<=50;i++) {
business.sub2(i);
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
for(int i=1;i<=50;i++) {
business.sub3(i);
}
}
}).start();
for(int i=1;i<=50;i++) {
business.main(i);
}
}
static class Business {
//synchronized 用 lock替代
Lock lock = new ReentrantLock();
//老大
Condition condition1 = lock.newCondition();
//老二
Condition condition2 = lock.newCondition();
//老三
Condition
java 之 三个线程交替执行任务
最新推荐文章于 2024-07-29 18:48:35 发布
本文通过使用ReentrantLock和Condition展示了如何在Java中实现三个线程交替执行任务。通过创建不同的条件变量,使得线程在特定条件下进行等待和唤醒,从而达到线程间的通信和协调执行。
摘要由CSDN通过智能技术生成