同步对象:锁定代码与锁定对象

G Vaid

假设您有两个线程可以访问同一公共对象。一个线程具有一段代码,该代码块读取对象的字段。

synchronized(object)
{
    read object fields
}

当读取的对象字段代码在线程1中执行时,如果线程2要更新对象的字段,它将不得不等到线程1完成读取对象的字段后再进行更新(例如,对象是否被其他线程锁定而在同步代码块正在执行)?

塔玛斯·赫格杜斯(Tamas Hegedus)

不,第二个线程不会等待,除非它synchronized在同一对象上也有一个块。

synchronized(object)
{
    // read object fields
}

... in other thread:

synchronized(object)
{
    // write object fields
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java同步和对象锁定

来自分类Dev

同步是否锁定结果集对象?

来自分类Dev

Java同步方法未锁定对象

来自分类Dev

同步块中的静态和非静态锁定对象

来自分类Dev

锁定创建ID的对象

来自分类Dev

锁定对象的最佳方法

来自分类Dev

从对象锁定方法(Java)

来自分类Dev

锁定对象的字段值

来自分类Dev

为什么这个简单的Java同步代码块示例根据锁定的对象为我提供不同的输出?

来自分类Dev

同步:为什么更希望锁定私有的最终静态对象而不是类的类对象?

来自分类Dev

锁定私有静态对象

来自分类Dev

锁定字典对象的正确方法

来自分类Dev

在C#中锁定对象

来自分类Dev

同步对象可锁定一个线程并释放另一个线程

来自分类Dev

创建并使用String对象锁定线程同步是一种好习惯吗?

来自分类Dev

会是什么,如果重新分配基准锁定同步块内的对象?

来自分类Dev

同步对象可锁定一个线程并释放另一个线程

来自分类Dev

Java中的类锁定和对象锁定之间的区别

来自分类Dev

多线程:锁定对象类型之间的差异

来自分类Dev

如何为整个项目锁定对象?

来自分类Dev

尝试锁定对象时尝试/抓住

来自分类Dev

决定锁定特定对象的任何指导

来自分类Dev

可以将Hashtable用作锁定对象吗?

来自分类Dev

动态多对象锁定-多线程

来自分类Dev

C#锁定私有静态对象

来自分类Dev

一类中的Java锁定对象

来自分类Dev

带对象锁定的单例模式

来自分类Dev

对象级锁定是否是线程安全的?

来自分类Dev

如何为整个项目锁定对象?