黑马程序员技术交流社区
标题:
多线程
[打印本页]
作者:
浩临天下
时间:
2013-6-18 11:24
标题:
多线程
01.class Ticket implements Runnable
02.{
03.private static int tick = 100;
04.boolean flag = true;
05.public void run()
06.{
07.if(flag)
08.{
09.while(true)
10.{
11.synchronized(Ticket.class)
12.{
13.if(tick>0)
14.{
15.try{Thread.sleep(10);}catch(Exception e){}
16.System.out.println(Thread.currentThread().getName()+"....code : "+ tick--);
17.}
18.}
19.}
20.}
21.else
22.while(true)
23.show();
24.//show难道不是对象在调用吗?为什么是Ticket类在调用呢?
25.}
26.public static synchronized void show()
27.{
28.if(tick>0)
29.{
30.try{Thread.sleep(10);}catch(Exception e){}
31.System.out.println(Thread.currentThread().getName()+"....show.... : "+ tick--);
32.}
33.}
34.}
35.
36.
37.public class StaticMethodDemo
38.{
39.public static void main(String[] args)
40.{
41.
42.Ticket t = new Ticket();
43.Thread t1 = new Thread(t);
44.Thread t2 = new Thread(t);
45.t1.start();
46.try{Thread.sleep(10);}catch(Exception e){}
47.t.flag = false;
48.t2.start();
49.
50.
51.}
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