本帖最后由 许兵兵 于 2013-4-1 21:21 编辑
- class test implements Runnable
- {
- private int x=0;
- Object obj=new Object();
- public void run() //重写RUN方法
- {
- while (x<100)
- {
- synchronized(obj) //锁线程
- {
- System.out.println(Thread.currentThread().getName()+"-------"+x++) ;//打印线程名 和X,
- }
- }
- }
-
- }
- class Dome
- {
- public static void main(String[] args)
- {
- test a1=new test(); //新建Test对象
- Thread b1=new Thread(a1); //新建四个线程
- Thread b2=new Thread(a1);
- Thread b3=new Thread(a1);
- Thread b4=new Thread(a1);
- b1.start(); //启动四个线程
- b2.start();
- b3.start();
- b4.start();
-
- /*
- for (int x=0;x<100 ;x++ )
- {
- System.out.println("x="+x);
- }
- */
- }
- }
复制代码 帮我看看,我就感觉我的程序很有规律,每次最后都是到102,按道理应该到99才对啊,为什么多了三个啊!
然后线程也一直都抢不到,也不知道是真的抢不到,还是说程序有问题,反正就是说线程从0到99一直都是一个线程,就是最后三个不是.测试了好多遍了,都不行!
|
|