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

CRITICAL_SECTION用于设置和获取单个bool值

何昆
2023-03-14

现在写复杂的class,感觉我用了很多critical_section

据我所知,有些类型有原子操作,它们总是在没有任何硬件或软件中断的情况下执行。

我想检查一下我是否正确地理解了每件事。

  • 要设置或获取原子值,我们不需要critical_section,因为这样做不会有中断。
  • bool是原子的。

所以有我的语句,想问一下,如果它们是正确的,也如果它们是正确的,没有critical_section也可以设置或获取哪些类型的变量?

注:我说的是每个方法获得或设置一个值,不是两个,不是五个,而是一个。

共有1个答案

井斌斌
2023-03-14
  1. 您不需要锁定原子数据,但它们可以在内部锁定。注意例如,C++11的std::atomic有一个is_lock_free函数。
  2. bool不能是原子的。查看此处此处
 类似资料:
  • 通过 id 获取 device 信息 参数说明 字段 类型 必须? 说明 deviceId String 是 设备Id 接口定义 Swift: let device = RokidMobileSDK.device.getDevice(deviceId: String) -> RKDevice? Objc: RKDevice * device = [RokidMobileSDK.device ge

  • 问题内容: 我希望能够设置一个cookie,并在对nodejs服务器实例的每个请求中读取单个cookie。是否可以用几行代码来完成,而无需引入第三方库? 只是尝试直接从nodejs.org中获取上述代码,然后在其中工作一个cookie。 问题答案: 无法快速访问获取/设置Cookie的功能,因此我想到了以下技巧: 这会将所有cookie存储到cookie对象中,并且在编写头部时需要设置cookie

  • 问题内容: 我想每次引用页面时都增加一个cookie值,即使该页面是从缓存中加载的。实现此目的的“最佳”或最简洁的方法是什么? 问题答案: 从http://www.quirksmode.org/js/cookies.html#script被盗 使用它: 如评论中指出的那样,由于cookie被存储并作为字符串返回,因此您应该将其强制转换为int。使用或会为您实际投放,但更确切地知道您正在使用的是更安

  • 问题内容: 这是我的工厂: 我在两个控制器MainCtrl和AccountEditCtrl中使用此服务,在MainCtrl中使用getFirstname(),在AccountEditCtrl中使用setFirstname 我的问题是,当我使用userService.setFirstname()时,$ scope.userName不会在MainCtrl中更改。 问题答案: 在某些情况下,$ watc

  • 我正在尝试为属性创建get和set方法: 设置值的关键字是什么?

  • 本文向大家介绍Java获取和设置字段,包括了Java获取和设置字段的使用技巧和注意事项,需要的朋友参考一下 示例 使用Reflection API,可以在运行时更改或获取字段的值。例如,您可以在API中使用它,以根据某个因素(例如操作系统)来检索不同的字段。您也可以删除修饰符,例如final允许修饰最终的字段。 为此,您将需要以getField()如下所示的方式使用Class#方法: 获取字段要容