黑马程序员技术交流社区

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

作者: 浩临天下    时间: 2013-6-18 11:24
标题: 多线程
  1. 01.class Ticket implements Runnable

  2. 02.{

  3. 03.private static int tick = 100;

  4. 04.boolean flag = true;

  5. 05.public void run()

  6. 06.{

  7. 07.if(flag)

  8. 08.{

  9. 09.while(true)

  10. 10.{

  11. 11.synchronized(Ticket.class)

  12. 12.{

  13. 13.if(tick>0)

  14. 14.{

  15. 15.try{Thread.sleep(10);}catch(Exception e){}

  16. 16.System.out.println(Thread.currentThread().getName()+"....code : "+ tick--);

  17. 17.}

  18. 18.}

  19. 19.}

  20. 20.}

  21. 21.else

  22. 22.while(true)

  23. 23.show();

  24. 24.//show难道不是对象在调用吗?为什么是Ticket类在调用呢?

  25. 25.}

  26. 26.public static synchronized void show()

  27. 27.{

  28. 28.if(tick>0)

  29. 29.{

  30. 30.try{Thread.sleep(10);}catch(Exception e){}

  31. 31.System.out.println(Thread.currentThread().getName()+"....show.... : "+ tick--);

  32. 32.}

  33. 33.}

  34. 34.}

  35. 35.

  36. 36.

  37. 37.public class StaticMethodDemo

  38. 38.{

  39. 39.public static void main(String[] args)

  40. 40.{

  41. 41.

  42. 42.Ticket t = new Ticket();

  43. 43.Thread t1 = new Thread(t);

  44. 44.Thread t2 = new Thread(t);

  45. 45.t1.start();

  46. 46.try{Thread.sleep(10);}catch(Exception e){}

  47. 47.t.flag = false;

  48. 48.t2.start();

  49. 49.

  50. 50.

  51. 51.}

  52. 52.}
复制代码
show难道不是对象在调用吗?为什么是Ticket类在调用呢?
作者: 吕祥艺    时间: 2013-6-18 11:42
不懂你什么意思? 你是指锁里的对象??  如果锁里的对象 静态方法里自动调用的就是 类名.class,和你在 run(); 里的锁是同一个锁....
作者: 袁梦希    时间: 2013-6-18 13:06
吕祥艺 发表于 2013-6-18 11:42
不懂你什么意思? 你是指锁里的对象??  如果锁里的对象 静态方法里自动调用的就是 类名.class,和你在 run(); ...

加油兄弟
作者: 袁梦希    时间: 2013-6-18 13:07
加油楼主   
作者: 孙百鑫    时间: 2013-6-24 23:51
楼主您好,由于帖子长时间没有动态,我已经讲帖子改成已解决了,如有问题,可以私聊我。{:soso_e100:}




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