下面的理解是什么?
我经历了this在 SO 上发布,但仍然无法组装它。
代码1:
synchronized(this){
// some code
}
代码2:
Object lock = new Object();
synchronized(lock){
// some code
}
任何教程或一些链接来解释同步,就像他们向 child 解释一样?
最佳答案
基本上,Java 中的每个对象都有一个“锁”。
当线程到达对同步(某物)的调用时,它必须在继续之前获取某物的锁。如果你想一次只允许一个线程修改一个对象的状态,最明显的事情就是同步那个对象的锁。如果允许并行调用不同的方法,则需要不同的锁。
如果写synchronized(this),或者简单的synchronized,线程必须获取与当前对象关联的锁(方法被调用)。
请注意,自 Java 5.0 起,并发包提供了正确的 locks可以用来代替同步。
关于java - 在线程中使用同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1354086/