线程安全性问题的解决:
程序员文章站
2022-03-09 23:19:57
...
线程安全性问题的解决:
同步代码块处理实现Runnable接口的线程安全性问题:
//创建三个窗口买票,总票数为100 张:使用实现Runaable接口的方式。
class Window2 implements Runnable{
private int Ticket = 100;
Object obj = new Object();
@Override
public void run() {
while (true) {
synchronized (obj) {
if (Ticket > 0) {
System.out.println(Thread.currentThread().getName() + "卖票:票号为:" + Ticket);
Ticket--;
} else {
break;
}
}
}
}
}
public class ThreadTest04 {
public static void main(String[] args) {
Window2 w1 = new Window2();
Thread t1 = new Thread(w1);
Thread t2 = new Thread(w1);
Thread t3 = new Thread(w1);
t1.setName("窗口1");
t2.setName("窗口2");
t3.setName("窗口3");
t1.start();
t2.start();
t3.start();
}
}
运行结果:
上一篇: 使用Druid连接池出现的问题