下面的程序会逐步引出synchronized的用法:
[例]
class TicketMan
{
public static void main(String[]aresg)
{
Ticket t=new Ticket();
//创建4个线程
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
}
}
class Ticket implements Runnable
{
int tk=10;
public void run()
{
while(tk>0)
{
System.out.println(Thread.currentThread().getName()+"窗口正在售出"+tk--+"号票.");
}
}
}
//输出结果:4个窗口,成功把10张票随机分配售完.
/*
Thread-0窗口正在售出10号票.
Thread-1窗口正在售出7号票.
Thread-1窗口正在售出5号票.
Thread-3窗口正在售出8号票.
Thread-2窗口正在售出9号票.
Thread-3窗口正在售出3号票.
Thread-3窗口正在售出1号票.
Thread-1窗口正在售出4号票.
Thread-0窗口正在售出6号票.
Thread-2窗口正在售出2号票.
*/class TicketMa