Java两种方法实现模拟卖票
第一种继承Thread类
public class TestThread extends Thread{
//定义静态变量,为所有对象所共有
private static int ticket = 50;
//定义静态对象 object,保证在使用时synchronized获得对象的唯一性
//不然main方法里new多个对象就有多个锁
private static Object object = new Object();
//定义线程名称
public TestThread(String name) {
super(name);
}
@Override
public void run(){
while (true){
//这里不能用this,这里的this代表test1,test2,test3三个对象,锁不唯一
//方式一
//synchronized(object){
//方式二
//获取TestThread1的class对象,class 类名 = 类名.class,类名.class只会加载一次
synchronized(TestThread1.class){
if(ticket > 0){
try