java中什么是同步_“同步”在Java中意味着什么?

本问题已经有最佳答案,请猛点这里访问。

我一直在努力学习设计模式。这个网站使用synchronized关键字,但我不明白它的作用。

我在网上搜索,发现它与多线程和内存有些关系,但我是一个机械工程师,不明白这意味着什么。

有人能帮我理解线程和synchronized关键字吗?

EDCOX1 0是Java特定的关键字。

链接中的代码不是C++。

第一点是链接到的代码示例是Java而不是C++。

C++中没有EDCOX1的0个关键字。

在Java中有一个,但是对于方法来说,它意味着以下两件事:

It is not possible for two invocations of synchronized methods on the same object to interleave. When one thread is executing a synchronized method for an object, all other threads that invoke synchronized methods for the same object block (suspend execution) until the first thread is done with the object.

When a synchronized method exits, it automatically establishes a happens-before relationship with any subsequent invocation of a synchronized method for the same object. This guarantees that changes to the state of the object are visible to all threads.

类似的规则适用于任意块。

另外,我建议从同行评议的书中学习,而不是一些武断的非权威网站。

非常感谢@tomalak:)

@CAD编码:没问题

在(Java)示例中

public static synchronized Singleton getInstance()

意味着一次只能有一个线程能够访问getInstance()方法,以避免出现争用情况。

仅针对每个对象。

正如评论家已经指出的,同步是一个Java关键字。

这意味着两个线程不能同时执行该方法,而JVM负责执行该方法。

在C++中,您必须使用一些同步构造,例如临界区或互斥体。你可以参考这个。

如果一个线程试图读取数据和其他线程线程试图更新相同的数据,它导致状态不一致。

这可以通过同步访问来防止数据。使用"同步"方法:

public synchronized void update()

{

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值