黑马程序员技术交流社区

标题: 多线程同步问题 [打印本页]

作者: ring8677    时间: 2015-5-20 20:22
标题: 多线程同步问题
看一下这段代码,为什么每次运行时都是0线程在走而其他线程都不走呢?
  1. class ThreadDemo4
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 Ticket t = new Ticket();
  6.                 Thread t1 = new Thread(t);
  7.                 Thread t2 = new Thread(t);
  8.                 Thread t3 = new Thread(t);
  9.                 Thread t4 = new Thread(t);
  10.                 t1.start();
  11.                 t2.start();
  12.                 t3.start();
  13.                 t4.start();

  14.         }
  15. }
  16. class Ticket implements Runnable
  17. {
  18.         private int num = 1000;
  19.         Object obj = new Object();
  20.         public void run()
  21.         {
  22.                 show();
  23.         }
  24.         public void show()
  25.         {
  26.                 while (true)
  27.                 {
  28.                         synchronized(obj)
  29.                         {
  30.                         if (num>0)
  31.                         {
  32.                                 try
  33.                                 {
  34.                                         Thread.sleep(20);
  35.                                 }
  36.                                 catch (InterruptedException e)
  37.                                 {
  38.                                         e.printStackTrace();
  39.                                 }
  40.                                 System.out.println("线程名字:"+Thread.currentThread().getName()+"--num:"+ num--);

  41.                         }
  42.                         }
  43.                 }
  44.         }
  45. }
复制代码

作者: 马也keyboard    时间: 2015-5-28 10:49
我运行了下代码,所有的线程都在跑啊。
哥们你是不是运行错class文件了
作者: 途中ms前进    时间: 2015-5-28 11:05
路过看看
作者: ring8677    时间: 2015-5-30 15:14
马也keyboard 发表于 2015-5-28 10:49
我运行了下代码,所有的线程都在跑啊。
哥们你是不是运行错class文件了

没有,后来我也运行了,也是所有线程都在跑,原因可能就是偶然性导致的。
作者: zhousuo28    时间: 2015-5-30 21:08
偶然性吧,睡眠时间长点试试看?




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