想要那片海 发表于 2015-6-4 21:06
探索者 发表于 2015-6-4 22:24
楼主对count用静态进行共享这能理解,但是楼主在建立多线程的时候,建立了两个对象,那么你所使用的锁的意 ...
半月 发表于 2015-6-4 22:35
对象不是同一个,但是count是静态的,只有一个啊.
他那个只要把synchronized拿到while外面就可以了
但是我 ...
半月 发表于 2015-6-4 22:35
对象不是同一个,但是count是静态的,只有一个啊.
他那个只要把synchronized拿到while外面就可以了
但是我 ...
半月 发表于 2015-6-4 22:35
对象不是同一个,但是count是静态的,只有一个啊.
他那个只要把synchronized拿到while外面就可以了
但是我 ...
探索者 发表于 2015-6-4 22:56
这是我刚才按楼上提出的解决方案运行的结果:
探索者 发表于 2015-6-4 22:24
楼主对count用静态进行共享这能理解,但是楼主在建立多线程的时候,建立了两个对象,那么你所使用的锁的意 ...
半月 发表于 2015-6-4 22:35
对象不是同一个,但是count是静态的,只有一个啊.
他那个只要把synchronized拿到while外面就可以了
但是我 ...
武汉小菜鸟 发表于 2015-6-4 23:21
你好,你这样也不对!
他这里是this的问题,加同步锁是为了同一时刻只有一个对象在执行代码块,这里传thi ...
forTomorrow 发表于 2015-6-5 08:57
修改后的代码:
package com.itheima;
武汉小菜鸟 发表于 2015-6-4 23:21
你好,你这样也不对!
他这里是this的问题,加同步锁是为了同一时刻只有一个对象在执行代码块,这里传thi ...
探索者 发表于 2015-6-5 10:42
如果建立的是两个对象,那么即使改变锁对象为唯一的字节码文件,也是起不到同步的作用 ...
forTomorrow 发表于 2015-6-5 08:48
我比较赞同你的观点,我感觉也是this表示的是不同对象,所以导致不是同一把锁,改为类的字节码应该就可以 ...
武汉小菜鸟 发表于 2015-6-5 10:47
如果是唯一的字节码,那么同一时刻只能有一个对象访问同步代码块,就能保证安全问题。你试试 ...
探索者 发表于 2015-6-5 10:56
唯一的字节码只能保证在同一个对象运行成立,但对于多个对象,即使都使用的是一样的字节码文件,但也同步 ...
武汉小菜鸟 发表于 2015-6-5 11:08
什么叫同步,简单的说,就是某个对象,同一时刻,只能被一个线程访问,那就叫同步。(我在网上查的)。“ ...
探索者 发表于 2015-6-5 11:28
刚才想了一下,你的理解是对的,只是之前在程序了试了唯一字节码对多个对象的情况,发现也有不同步,所以 ...
pp7803515 发表于 2015-6-5 14:00
new Thread(new RunImp()).start();
new Thread(new RunImp()).start();
你这里写的是2次,如果我 ...
hellotaomi 发表于 2015-6-5 14:01
new了两个线程,两个线程对应的对象就不一样吧,那怎么还能用this作为说同步锁的对象呢 ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |