案例:四个窗口共卖100张票(同步代码块方式)
案例:四个窗口共卖100张票(同步代码块方式)
代码实现
package com.sun.base.XianCheng;
/**
* 用同步代码块synchronized
* 实现四个窗口共卖100张票
* @author SFF
*/
public class TextTicket {
public static void main(String[] args) {
//创建Ticket
Ticket ticket = new Ticket();
//创建线程对象
Thread w1=new Thread(ticket,"窗口1");
Thread w2=new Thread(ticket,"窗口2");
Thread w3=new Thread(ticket,"窗口3");
Thread w4=new Thread(ticket,"窗口4");
//启动线程
w1.start();
w2.start();
w3.start();
w4.start();
}
}
/**
* 票类
*/
class Ticket implements Runnable{
private int ticket=100;
private Object obj =new Object();
@Override
public void run() {
while (true) {
synchronized (obj) {
if (ticket < 0) {
break;
}
System.out.println(Thread.currentThread().getName() + "卖了第" + (100 - ticket) + "张票");
ticket--;
}
}
}
}

浙公网安备 33010602011771号