黑马程序员技术交流社区

标题: 多线程的安全问题....? [打印本页]

作者: xiaobo    时间: 2014-3-8 15:22
标题: 多线程的安全问题....?
多线程同步代码块中的锁是怎么工作的...?代码中注释部分有啥作用?
  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. }
复制代码

作者: 马富林    时间: 2014-3-8 16:21
原理,毕老师视频里将的很清楚了,再看看,在火车卫生间那个例子里,
目的,是为了不让多个线程同时操作同一个数据。
被注释代码的功能可以让程序执行到那里暂停15毫秒。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2