阅读背景:

Java【多线程知识总结(7)】多线程同步问题-关于synchronized代码块和synchronized方法的应用

来源:互联网 

下面的程序会逐步引出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



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: