假设您有两个线程可以访问同一公共对象。一个线程具有一段代码,该代码块读取对象的字段。
synchronized(object)
{
read object fields
}
当读取的对象字段代码在线程1中执行时,如果线程2要更新对象的字段,它将不得不等到线程1完成读取对象的字段后再进行更新(例如,对象是否被其他线程锁定而在同步代码块正在执行)?
不,第二个线程不会等待,除非它synchronized
在同一对象上也有一个块。
synchronized(object)
{
// read object fields
}
... in other thread:
synchronized(object)
{
// write object fields
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句