假设我有两个同一类的不同对象,它们是否能够同时执行相同的同步方法,因为锁位于对象而不是方法上。
示例:
MyCLass cc= new MyCLass();
MyCLass cc1= new MyCLass();
现在创建两个线程 t1 --- 它将调用 cc.meth t2--它将调用 cc1.meth
// in this case t1 thread get lock on object cc and t2 thread get lock on object cc1.. it will work
synchronized meth(){
}
正确吗?
最佳答案
我想你的问题在这里得到了解答https://docs.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html ,这表明在执行同步方法时只有同一类的一个实例被锁定,显然即使是由线程执行也是如此。
关于java - 同一类的两个不同对象(如 o1 和 02)具有不同的主题(如 t1 和 t2),它们可以同时执行同步方法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45115464/