用runnable接口实现
public class ShouPiao implements Runnable{
// 通过使用实现Runnable接口就可以让多个线程共享其中的普通成员变量,而不是每个线程都有一份引用
private Integer tickets=200;
@Override
public void run() {
while (tickets>=1){
synchronized (ShouPiao.class){
tickets--;
if(tickets<0){
System.out.println("车票已售罄!");
return;
}
try {
Thread.sleep(10);
//ShouPiao.class.wait(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(Thread.currentThread().getName()+"售出1张票,还剩"+tickets+"张票!");
}
}
}
public class ThreadTest {
@Test
public void test1() throws InterruptedException {
long a = new Date().getTime();
ShouPiao shouPiao = new ShouPiao();
Thread t1 = new Thread(shouPiao,"窗口一");
Thread t2 = new Thread(shouPiao,"窗口二");
Thread t3 = new Thread(shouPiao,"窗口三");
t1.start();
t2.start();
t3.start();
t1.join();
t2.join();
t3.join();
long b = new Date().getTime();
System.out.println("总共用时"+(b-a));
}
}