当前位置: 首页 > 知识库问答 >
问题:

在编程中,“原子”和“同步”是同义词吗?

上官鸿晖
2023-03-14

“原子”和“同步”是指同一件事还是有细微的区别?

看看这个问题的答案,我认为我的问题的答案是肯定的,它们是同义词。以下情况一般是否属实?

  • 同步操作将在下一个操作开始之前完成

共有1个答案

焦苏燕
2023-03-14

不完全一样。原子操作是不能细分为更小的部分的操作。所以,在Java中,分配给int是原子的:没有什么可以中断它,它要么完成,要么不完成。

同步操作是通过使用synchronized关键字调用的某种编程机制来模拟原子状态的操作。这方面的实施可能会有所不同。因此,在一个同步块中,运行时系统强制执行一个所谓的关键区域,在该区域中,同时只有一个控制线程可以通过。

 类似资料:
  • 问题内容: 这个问题一再被问到,但我仍然有疑问。当人们说同步创建了一个内存障碍时,这个内存障碍适用于什么缓存变量?这看起来不可行。 因此,由于这个疑问,我编写了一些看起来像这样的代码: 我想知道是否有可能只用简单的double []代替total的类型:这将要求synced(总计)(在run()方法中)确保我不使用索引中的每个索引的本地副本双精度数组,即内存围栏不仅适用于自身的值(在指针的背后),

  • 问题内容: 我一直在阅读nodebeginner, 并且遇到了以下两段代码。 第一个: 第二个: 我得到了他们应该做的事情,他们查询数据库以检索查询的答案。然后。 第一个应该是同步代码。第二个是异步代码。 这两部分之间的区别对我来说很模糊。输出是什么? 搜寻异步编程也无济于事。 问题答案: 区别在于,在第 一个示例中 ,程序将在第一行中阻塞。下一行()必须等待。 在 第二个示例中 ,将在处理查询时

  • 从升级Spring框架之后 无法确定正确的调用签名-“我的存储过程名称”没有过程/函数/签名 例外情况。然后我进行了调试,发现如果存储过程位于同义词后面,则无法找到它。对于旧的Spring版本,这不是问题。那么他们改变了什么?我现在能做什么?我阅读了有关从数据源检索原始Oracle连接并激活同义词标志的内容:https://docs.oracle.com/cd/E11882_01/appdev.1

  • 问题内容: 我一直在阅读nodebeginner,并且遇到了以下两段代码。 第一个: 第二个: 我得到了他们应该做的事情,他们查询数据库以检索查询的答案。然后。 第一个应该是同步代码。第二个是异步代码。 这两件作品之间的区别对我来说很模糊。输出是什么? 搜寻异步编程也没有帮助我。 问题答案: 区别在于,在第 一个示例中 ,程序将在第一行中阻塞。下一行()必须等待。 在 第二个示例中 ,将在处理查询

  • 当我尝试通过启动不同的线程来执行所有同步方法时,我在一个类中有三个同步方法,我看不到同步的输出,在对象上没有获得锁 公共类DisplayMessage{ }线程类: 公共类 MyThread 扩展了线程 { }Thread2类:公共类MyThread2扩展线程{ } 线程 3 类: 包装Synchronization.classlock; 公共类MyThread3扩展线程{ } 使用main方法生

  • 我试图更好地理解Java多线程。所以,我知道这句话说只有一个线程可以访问一个对象实例,从而调用该实例的方法(例如,在这种情况下,类 中的减方法。 但是,当你仍然有相同的 会发生什么,但两个线程与不同的 相关联,完全试图调用 的方法?我以为不的消息永远不会被打印出来,但它确实打印出来了。毕竟,仍然只有一个对象实例 ,这是否意味着同步不适用于此示例?