腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
7
回答
UNIX便携式
原子
操作
、
、
、
在C中是否有一种(POSIX-)可移植的方式用于
原子
变量
操作,类似于带有线程的可移植线程?
原子
操作是
原子
执行的“增量和获取”之类的操作,这意味着没有上下文切换可以干扰操作。在
Linux
内核空间中,我们必须使用类型,而在Java中我们有包。在
Linux
上,atomic.h文件提供
原子
操作,但是包含是依赖于平台的,例如#include <asm-x86_64/atomic.h>,而且它在Mac上也不能以类似的方式使用。
浏览 25
提问于2009-07-15
得票数 33
回答已采纳
1
回答
函数以
原子
方式读取值?
、
我目前正在玩
原子
读写,在我的理解中碰到了一道墙。我知道写入
变量
(如通过增量)必须是
原子
的,但我不确定是否读取
变量
。考虑一下Windows上的_InterlockedExchangeAdd或
Linux
上的__sync_add_and_fetch。我找不到一个以
原子
方式检索正在更新的值的函数。现在,我已经做了我的研究,在这里张贴和告诉我,读不是
原子
。 1)如果我使用上面的函数,我如何
原子
地读取这个值,例如,如果从一个函数返回它?2)如果我不想使用这些函数,
浏览 2
提问于2016-07-05
得票数 0
回答已采纳
2
回答
std::
原子
的锁在哪里?
、
、
、
、
如果一个数据结构中有多个元素,那么它的
原子
版本就不能(总是)是无锁的。我被告知,对于较大的类型,这是正确的,因为CPU无法在不使用某种锁的情况下
原子
地更改数据。std::endl; std::cout << sizeof(var) << std::endl;输出(
Linux
/gcc)是:16由于
原子
和foo大小相同,所以我不认为锁存储在
原子</e
浏览 3
提问于2018-05-11
得票数 81
回答已采纳
1
回答
使用std::
原子
与futex系统调用
、
、
、
、
在C++20中,我们可以在
原子
变量
上休眠,等待它们的值改变。我们通过使用方法来做到这一点。睡在
原子
变量
上,不管怎么说,都是用在Windows上实现的,系统调用是在
Linux
上实现的。为了解决上述问题(无法在
原子
变量
上使用超时睡眠),我可以在std::atomic上将WaitOnAddress的内存地址传递给
浏览 5
提问于2021-04-10
得票数 12
回答已采纳
2
回答
如何在AIX/powerpc上实现
原子
分配?
、
、
、
我只需要
原子
读操作和
原子
写入操作(我不使用获取和添加、比较和交换等操作)。我只想澄清:对我来说,“
原子
性”不仅意味着“没有交错”,还意味着“跨多个核的可见性”。这些操作对指针进行操作,因此对'int‘
变量
的操作对我来说是无用的。 仅仅声明
变量<
浏览 5
提问于2011-07-06
得票数 3
3
回答
C++/
Linux
:使用c++11
原子
避免在双映射mmap区域上部分读取
、
、
、
、
我尝试使用C++11
原子
来控制内存顺序。作者线程: 如果有未完成的消息,请从只读内存映射区域读取数据。
原子
变量
能保护部分读取吗?(也就是说,如果读取器线程看到
原子
变量
被更新为获取语义,那么只读内存区域是否只有部分消息,或者消息根本
浏览 2
提问于2015-11-09
得票数 4
2
回答
多平台
原子
增量
、
、
、
、
在std::atomic出现之前,多平台(windows和
linux
)
原子
递增
变量
的方式是什么?
浏览 1
提问于2011-11-03
得票数 2
回答已采纳
3
回答
C++ std::
原子
与增强
原子
、
、
在我的应用程序中,我有一个int和bool
变量
,它们由多个线程访问(多个写/读)。目前,我使用两个互斥
变量
,一个用于int,另一个用于bool,用于保护这些
变量
。我听说过使用
原子
变量
和操作符来编写无锁多线程程序。我的问题是 boost/atomic.hpp?和
原子
之间的主要区别是什么?哪个更标准,哪个更受欢迎?目前我正在
Linux
上使用gnu gcc 4.6,但理想的情况是它
浏览 1
提问于2012-03-04
得票数 32
回答已采纳
1
回答
Linux
32位和64位的
原子
操作函数?
、
在Windows中,
原子
操作函数由32位和64位分隔,如下所示: 同时,在
Linux
中有哪些功能也是相同的呢为__sync_sub_and_fetch执行64位
变量
的函数是什么?
浏览 2
提问于2015-05-24
得票数 0
回答已采纳
1
回答
并行编程中的READ_ONCE和WRITE_ONCE
、
、
、
、
这里列出了允许对给定
变量
进行一些访问的普通负载和存储的情况,同时需要标记(例如READ_ONCE()和WRITE_ONCE())来访问该
变量
: 共享
变量
仅由给定的拥有或线程修改,但由其他CPU或线程读取一个共享
变量
只有在持有给定锁时才会被修改,但是是通过不保存该锁的代码读取的。所有商店都必须使用WRITE_ONCE()。持有锁的CPU或线程可以使用普通负载。--共享
变量
只有在由给定拥有的CPU或线程持有给定锁时才会被修改,而由其他CPU或线程读取,或者由不保持该锁的代码读取。所有商店都必须使用WRITE
浏览 0
提问于2021-09-05
得票数 6
回答已采纳
2
回答
i386架构下
Linux
内核
原子
操作读写
、
、
、
= 0;这个实现让我很困惑,这个函数中的
原子
是什么意思?只有减少的部分吗?但是我们如何确保sete返回正确的值呢?我们需要在函数调用this ?中禁用中断,
原子
似乎只针对此函数中的一句话(Decl),而不是整个函数?
浏览 0
提问于2014-03-05
得票数 0
1
回答
在与
原子
负载和存储同步的线程之间共享
变量
安全吗?
、
、
、
、
在一个在GNU/
Linux
中用GCC编译的C程序中,使用非
原子
和非易失性
变量
在线程之间共享数据(如果使用这些
变量
的线程是通过
原子
负载和存储来同步的话)是否安全(从意义上说它不会引入意外行为)?如果使用C11
原子
原语编写,如果使用POSIX线程互斥进行同步,还是使用POSIX信号量,则会有什么不同吗?我只将以下代码作为特定情况包括在内。
浏览 3
提问于2015-01-19
得票数 5
回答已采纳
2
回答
将atomic<>定义为函数中的静态
变量
、
C++11要求函数中的静态
变量
在函数的第一次运行时进行
原子
初始化。唯一有效地做到这一点的方法是双重检查锁定,以防止昂贵的互斥锁一直存在。 我只是有必要在函数中有一个静态的atomic<size_t>。如果这样的
原子
通过双重检查的锁定被
原子
初始化,那就没有意义了。相反,应该像另一个静态初始化的非const本机
变量
一样来处理它。我检查了VC++和Intel C++在Windows下生成的代码,以及
Linux
下的clang++和g++生成的代码,以及所有根据我的预期生成的代码。
浏览 1
提问于2022-05-14
得票数 2
1
回答
我需要std::atomic<bool>还是POD bool就足够了?
、
、
、
、
run) { /* do stuff */ } /* do stuff until it's time to shut down */这里是否需要与
原子
变量
相关的开销我的直觉是,布尔
变量
的读/写或多或少是
原子
的(这是一个常见的g++/
Linux
/Intel设置),如果有一些写/读计时问题,并且我在线程1上的run循环因此而提前或延迟停止一次传递
浏览 29
提问于2017-06-22
得票数 10
回答已采纳
1
回答
如何在
Linux
的多线程中实现同步
我有四个线程,我需要在这些线程之间转换数据,函数如下: processing; processing;
linux
中是否有任何同步功能可以确保线程到达同一时间点在windows中,我使用
原子
相加和
原子
比较来实现__sync(),在
Linux
中我没有发现
原子
比较函数。
浏览 2
提问于2011-09-20
得票数 2
回答已采纳
1
回答
在Java1.6中File.renameTo() atomic在
linux
上?
、
、
、
、
正如标题所说,在Java1.6中,File.renameTo()是POSIX
linux
上的
原子
操作吗?根据的说法,POSIX
Linux
中的重命名操作是
原子
的,然而,它是否支持File.renameTo的true
浏览 2
提问于2013-07-18
得票数 3
回答已采纳
1
回答
原子
变量
是否仅在其所在的缓存线上刷新缓存?
、
、
、
我尽量使用
原子
变量
,而不是互斥。但我对
原子
变量
有疑问。
原子
变量
是否只获取、释放它所在的缓存线?
浏览 0
提问于2021-04-05
得票数 0
1
回答
需要Solaris(sparc架构)上的
原子
加法操作代码
、
我需要
原子
操作代码,等同于以下代码: " lock;\n" : "=m"(a), "=a" (c) ); (添加两个
变量
a和b,以及
Linux
上存储在a和c中的
浏览 1
提问于2009-11-11
得票数 0
2
回答
导致线程锁定的C++优化
、
、
我做了一个程序,它有以下特点:
变量
:volatile int8_t* p2
浏览 39
提问于2017-02-23
得票数 1
回答已采纳
3
回答
c++,c++11,std::
原子
成员函数
、
、
我正在尝试使用std::
原子
库。 (如果存在的话)下面的non-specialized将一个值存储到一个
原子
对象(公共成员函数) v.s。存储 (C++11)
原子
地用一个非
原子
参数替换
原子
对象的值(公共成员function)operator T()从一个
原子
对象加载一个值((公共成员函数) v.s. fetch_addoperator-=load (C++11)
原子
地获取
原子
对象的值(公共成员fetch_suboperator&= v.s. f
浏览 2
提问于2012-03-04
得票数 10
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
原子变量
Java并发编程之原子变量
linux 环境变量
Linux系统编程 条件变量
linux怎么设置环境变量
热门
标签
更多标签
云服务器
ICP备案
实时音视频
云直播
对象存储
活动推荐
运营活动
广告
关闭
领券