private int tick = 100;
//Object obj = new Object(); //创建个上帝对象
public void run()
{
while(true) /*同步解决安全问题,对多条操作共享数据的语句,只能让一个线程都执行完。在执行中,其他线程不能参与 执行。*/
{
synchronized(this) //可以是任意对象 也可以把obj 传到里面 ,静态函数的同步方式 传入的对象必须是字节码文件对象,类名.class
{
if (tick>0)
{
//显示线程名及余票数
try{Thread.sleep(10);}catch(Exception e){} //让当前执行的线程睡一会,这样测试安全
System.out.println(Thread.currentThread().getName()+"...maile:"+tick--);
}
}
}
}
}
class TicketDemo
{
public static void main(String[] args)
{
Ticket t = new Ticket();//创建Runnable接口子类的实例对象
//有多个窗口在同时卖票,这里用四个线程表示
Thread t1 = new Thread(t);//创建了一个线程,把t作为实际参数传给thread类的构造方法
Thread t2 = new Thread(t); //将Runnble接口的子类对象作为实参传递给Thread类的构造方法。
Thread t3 = new Thread(t);
Thread t4 = new Thread(t);
t1.start(); //启动线程
t2.start();
t3.start();
t4.start();
}
}