import java.util.concurrent.Semaphore;
/*
*文件名: ThreadMe
*创建者: LuoYiWang
*创建时间:2024/3/19 11:33
*描述: 交替循环打印ABC三个线程
*/
public class ThreadMe {
static class ThreadDemo extends Thread {
private Semaphore current;
private Semaphore next;
private String name;
public ThreadDemo(Semaphore current, Semaphore next, String name) {
this.current = current;
this.next = next;
this.name = name;
}
@Override
public void run() {
for(int i=0;i<5;i++) {
try {
// 获取当前锁
current.acquire();
System.out.println(name);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 释放下一把锁
next.release();
}
}
}
public static void main(String[] args) {
Semaphore A = new Semaphore(1);
Semaphore B = new Semaphore(0);
Semaphore C = new Semaphore(0);
new ThreadDemo(A,B, "A").start();
new ThreadDemo(B,C, "B").start();
new ThreadDemo(C,A, "C").start();
}
}
三个线程交替循环打印
最新推荐文章于 2024-07-22 14:15:06 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)