A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiaobo 中级黑马   /  2014-3-8 15:22  /  641 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多线程同步代码块中的锁是怎么工作的...?代码中注释部分有啥作用?
  1. class Ticket implements Runnable
  2. {
  3.         private int tick = 1000;
  4.         Object obj = new Object();
  5.         public void run()
  6.         {
  7.           while(true)
  8.                 {
  9.               synchronized(obj)
  10.                         {
  11.                        if(tick>0)
  12.                                 {
  13.                               /*try
  14.                               {
  15.                                         Thread.sleep(15);
  16.                               }
  17.                               catch (Exception e)
  18.                               {

  19.                               }
  20.                                    */
  21.                                   System.out.println(Thread.currentThread().getName()+"...sale:"+tick--);
  22.                             }
  23.                     }
  24.             }
  25.         }
  26. }
  27. class          TicketDemo2
  28. {
  29.         public static void main(String[] args)
  30.         {
  31.                 Ticket t = new Ticket();
  32.                 Thread t1= new Thread(t);
  33.                 Thread t2= new Thread(t);
  34.                 Thread t3= new Thread(t);
  35.                 Thread t4= new Thread(t);
  36.                 t1.start();
  37.                 t2.start();
  38.                 t3.start();
  39.                 t4.start();
  40.         }
  41. }
复制代码

1 个回复

正序浏览
原理,毕老师视频里将的很清楚了,再看看,在火车卫生间那个例子里,
目的,是为了不让多个线程同时操作同一个数据。
被注释代码的功能可以让程序执行到那里暂停15毫秒。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马