public class ThreadDemo5 {
public static void main(String[] args) {
//开启四个线程 实现资源共享的目的
TestThread4 testThread4 = new TestThread4();
Thread thread = new Thread(testThread4);
thread.start();
//资源数据访问不同步
new Thread(testThread4).start();
new Thread(testThread4).start();
new Thread(testThread4).start();
}
}
class TestThread4 implements Runnable{
private int tickets = 20;
@Override
public void run() {
// TODO Auto-generated method stub
//在同一个时间片刻 只能有一个线程来访问这块共享资源
//只有当访问中的线程离开了,下一个线程才能够访问这块共享资源
synchronized (this) {//同步线程锁
while (true) {//进入死循环
if (tickets > 0) {
try {
Thread.sleep(100);
} catch (Exception e) {
// TODO: handle exception
}
System.out.println(Thread.currentThread().getName() + "出票号:"+tickets -- );
}
}
}
}
}