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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 会说话的木头 于 2014-4-14 16:14 编辑
  1. class Ticket implements Runnable//extends Thread
  2. {
  3.         private  int tick =100;
  4.         Object obj = new Object();
  5.         public void run()
  6.         {
  7.                
  8.                 while (true)
  9.                 {
  10.                         synchronized(obj)
  11.                                 {
  12.                         
  13.                         if (tick>0)
  14.                         {
  15.                                 
  16.                                 try
  17.                                 {
  18.                                         Thread.sleep(10);
  19.                                 }
  20.                                 catch (Exception e)
  21.                                 {
  22.                                 }
  23.                                 System.out.println(Thread.currentThread().getName()+"sale :  "+tick--);
  24.                         }
  25.                             }
  26.                 }
  27.                         
  28.                         
  29.         }
  30. }
  31. class  TicketDemo
  32. {
  33.         public static void main(String[] args)
  34.         {
  35.                 Ticket  t=new Ticket();

  36.             Thread t1 = new Thread(t);
  37.         Thread t2 = new Thread(t);
  38.                 Thread t3 = new Thread(t);
  39.                 Thread t4 = new Thread(t);
  40.                 t1.start();
  41.                 t2.start();
  42.                 t3.start();
  43.                 t4.start();
  44.         }
  45. }
复制代码
结果是:Thread0 都执行完,其他线程没有执行

QQ截图20140414161138.png (2.57 KB, 下载次数: 5)

QQ截图20140414161138.png

5 个回复

正序浏览
会说话的木头 发表于 2014-4-14 16:33
还真是,仁兄看到什么地方了?报名哪一期?

也在看多线程能。相报33期呢,不知道能不能赶上。。
回复 使用道具 举报
askyle 发表于 2014-4-14 16:23
引用毕老师的话:
因为多个线程都获取cpu的执行权,cpu执行到谁,谁就运行。
明确一点,在某一个时刻,只 ...

仁兄引经据典,佩服!
仁兄看到什么地方了?报的哪一期?
回复 使用道具 举报
optimisticpig 发表于 2014-4-14 16:21
代码没有问题,你多运行几次应该就有其他的了

还真是,仁兄看到什么地方了?报名哪一期?
回复 使用道具 举报
引用毕老师的话:
因为多个线程都获取cpu的执行权,cpu执行到谁,谁就运行。
明确一点,在某一个时刻,只能有一个程序在运行,(多核除外)
cpu 在做着快速的切换,以达到看上去是同时运行的效果。
我们可以形象多线程的运行行为在互相抢夺cpu的执行权。
  
  这就是多线程的一个特性:随机性。谁抢到谁执行,至于执行多次,cpu说的算。

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
代码没有问题,你多运行几次应该就有其他的了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马