public void doIt(){synchroized(new object()){XXXX}}这样写为什么错?
这样写,,,执行起来可能不报错
但是,,synchroized(new object()) 你这个同步锁,意义何在??
每次进来都申请一把新锁子?每个人都能进,,是不是很尴尬。
作为同步锁的一般情况下,(仅通常情况),,加锁的元素是不容易发生变化的,,比如静态的参数,,或者this当前对象。等等,,才会更有意义
又是一波纯手码,,,对你有帮助,,请采纳^.^
我也好奇这样的锁错在哪里?
之所以用synchroized,通常与线程有关。你的这段伪代码是锁住的代码块,目的就是让你的代码块执行完之前,进程不会调到别的线程里去。
所以你的目的如果是这个,那么理论上我认为没错!!!!
你调用一次该方法就产生一个新的object对象锁。
每次执行都是用不同的对象锁,不存在互斥。