四个窗口卖200张票 不能出现卖票重复和负数票
public class ThreadTest extends Thread {
Ticket1 ticket1 = new Ticket1();
@Override
public void run() {
synchronized (ticket1) {
while (true) {
if (ticket1.getTicket() > 0) {
ticket1.Ticket(1);
System.out.println(Thread.currentThread().getName() + "买票成功,还剩" + ticket1.getTicket());
} else {
System.out.println(Thread.currentThread().getName() + "买票失败,还剩" + ticket1.getTicket());
return;
}
}
}
}
}
public class Ticket1{
private static int ticket = 200;
public Ticket1() {
}
public int getTicket() {
return ticket;
}
public void setTicket(int ticket) {
this.ticket = ticket;
}
public void Ticket(int num){
ticket=ticket-num;
}
}
public class Test {
public static void main(String[] args) {
ThreadTest threadTest1 = new ThreadTest();
ThreadTest threadTest2 = new ThreadTest();
ThreadTest threadTest3 = new ThreadTest();
ThreadTest threadTest4 = new ThreadTest();
threadTest1.start();
threadTest2.start();
threadTest3.start();
threadTest4.start();
}
}