java线程的一道题

来源:百度知道 编辑:UC知道 时间:2024/06/18 09:50:52
有100张票 四个售票窗口 每个窗口代表一个线程

谢谢

采用实现Runnable接口的方法
public static void main(String[] args) {
SaleTicket t = new SaleTicket();
Thread t1 = new Thread(t);
Thread t2 = new Thread(t);
Thread t3 = new Thread(t);
Thread t4 = new Thread(t);
t1.start();
t2.start();
t3.start();
t4.start();
}

public class SaleTicket implements Runnable {
private int tickets = 100;

public void run() {
while (true) {
synchronized (this) {
if (tickets > 0) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
Thread t = Thread.currentThread();
System.out.println(t.getName() + "卖出车票:" + tickets);
tickets--;
} else {
break;
}
}}}}