腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
C
中
函数
指针
的
原子
读写
?
、
、
、
、
我正在用
C
编写一些代码,这些代码可以在Windows和其他平台上运行。我知道像InterlockedExchangePointer这样
的
自动读/写数据
指针
的
函数
,我相信其他平台也有类似的功能,但是我如何才能用
函数
指针
以可移植
的
方式做到这一点呢?有没有可能,或者我需要一个锁或者内存屏障之类
的
东西?
浏览 28
提问于2019-06-21
得票数 1
1
回答
用于BSD以外
的
开放源码软件
的
原子
负载/存储?
、
、
、
、
在BSD提供
的
原子
操作(如在
原子
(9)手册页上提供
的
)
中
,有atomic_load_acq_int()和atomic_store_rel_int()。在寻找其他操作系统(例如,通过为Mac读取
原子
(3)手册页、为Solaris读取手册页和为Windows读取Interlocked*()
函数
)时,似乎没有任何(明显
的
)等价于仅仅
原子
地读取/写入int。这是因为在默认情况下,对于那些为int进行
读写
的<
浏览 3
提问于2010-07-11
得票数 3
2
回答
关于
原子
指针
赋值
的
保证
、
有没有保证
指针
变量
的
赋值是
原子
的
?S * p1 = new S; p1 = p2;
浏览 0
提问于2014-02-26
得票数 1
1
回答
在Delphi线程之间共享本机变量
、
、
我假设如果线程之间
的
共享变量具有本机类型,那么
原子
性应该可以完成这项工作。线程t1只是将计数器递增10M次。因此,期望
的
计数器值在最后是0,但我每次读取不同
的
值。 在Delphi
中
不加锁地在线程之间共享本机变量
的
正确方式是什么?
浏览 16
提问于2018-01-23
得票数 4
回答已采纳
1
回答
指向
指针
的
C
++多线程
指针
、
、
、
假设我有一个指向
指针
的
指针
,即int* ptr,其中包含一个三维数组。根据CPU
的
不同,我希望有大约三个线程同时
读写
我
的
指针
。为了简单起见,ptr不会被重新标注(如果必须重新定义
指针
,我仍然想知道如何处理多线程)。我想并发写入
指针
,而不必使用互斥,因为它会阻塞其他线程。我该怎么做?我还是不太明白
原子
模板clas..。 谢谢!
浏览 2
提问于2014-02-03
得票数 0
回答已采纳
2
回答
如何确保
原子
读取和
原子
写入?
、
c
; // not int如果不是,我如何使它们成为
原子
的
?编辑:作为说明,我不需要组合
读写
的
原子
操作。我只需要读是
原子
的
,写是
原子
的
。Edit2:@Peter Lawrey,@PeterLawrey,这很讽刺:Double a; a = 0.5d;这里
的
写是
原子
的
,因为
浏览 1
提问于2011-11-15
得票数 2
回答已采纳
3
回答
在
C
#
中
,哪些操作是
原子
的
?
、
、
、
有没有一种系统
的
方法来知道
C
#
中
的
操作是否是
原子
的
?或者有什么一般
的
指导原则或经验法则吗?
浏览 22
提问于2012-08-01
得票数 57
回答已采纳
2
回答
共享变量
的
竞争条件
、
、
我有一个double类型
的
共享变量。这个变量将由两个线程访问。一个线程将只写入变量,而另一个线程将仅读取变量。编辑:好
的
,“读取器”线程周期性地处理批量数据,并且新值
的
传播不是时间敏感
的
。而不是实现复杂
的
互锁,我没有很好
的
方法来测试,我只需要声明另一个写线程
浏览 0
提问于2012-04-18
得票数 3
回答已采纳
4
回答
在
C
11/
C
++11
中
,是否可以将
原子
/非
原子
操作混合在同一个内存
中
?
、
、
、
、
std::atomic<T> in
C
++没有定义任何具有非
原子
语义
的
操作。在
C
中
,所有
原子
变量
的
直接读/写似乎都被转换为
原子
操作。我认为memcpy()和其他直接内存操作可能是对
原子
变量执行非
原子
读写
的
一种方式吗?即。memcpy(&atomicvar, othermem, sizeof(atomicvar))?但这甚至是定义
的
行为
浏览 0
提问于2016-01-31
得票数 10
回答已采纳
2
回答
指针
赋值在
C
++
中
是
原子
的
吗?
、
、
、
、
实际上,我已经听到了这两种说法。我怀疑他们不是,但我想解决这个问题。
浏览 0
提问于2012-01-19
得票数 16
回答已采纳
1
回答
64位值
的
读/写在64位cpu上是
原子
的
吗?
、
、
、
在32位机器上,.net
中
64位值
的
读写
过去是非
原子
的
,也就是说,在读取时,我可以读取一个从未写入内存
的
值,其中包括一个较旧
的
32位值和一个较新
的
值。但是在64位cpus上读/写是
原子
的
吗? 如果是这样的话,这个应用程序也必须是64位
的
.net构建吗?
浏览 1
提问于2018-10-23
得票数 3
回答已采纳
1
回答
我是否需要一个锁来访问多线程上下文中不可变
的
数据结构?
、
、
、
、
我有一个不可变
的
数据结构,它是一个在多个线程之间共享
的
函数
hashmap (请参阅)。如果重要的话,我使用
的
是guile 2.2.3和bigloo 4.3。
浏览 3
提问于2018-02-12
得票数 0
2
回答
如何在AIX/powerpc上实现
原子
分配?
、
、
、
我正在将内核扩展移植到多处理器PowerPC上
的
32/64位AIX上,用
C
编写。我只需要
原子
读操作和
原子
写入操作(我不使用获取和添加、比较和交换等操作)。我只想澄清:对我来说,“
原子
性”不仅意味着“没有交错”,还意味着“跨多个核
的
可见性”。这些操作对
指针
进行操作,因此对'int‘变量
的
操作对我来说是无用
的
。如果我声明变量“易失性”,
C
标准说变量可以被未知因素修改,因此不受优化
的
限
浏览 5
提问于2011-07-06
得票数 3
1
回答
函数
以
原子
方式读取值?
、
我目前正在玩
原子
读写
,在我
的
理解
中
碰到了一道墙。我知道写入变量(如通过增量)必须是
原子
的
,但我不确定是否读取变量。考虑一下Windows上
的
_InterlockedExchangeAdd或Linux上
的
__sync_add_and_fetch。我找不到一个以
原子
方式检索正在更新
的
值
的
函数
。现在,我已经做了我
的
研究,在这里张贴和告诉我,读不是
原子
。
浏览 2
提问于2016-07-05
得票数 0
回答已采纳
1
回答
读和写到.NET
中
的
非对齐字段肯定是
原子
的
吗?
、
、
、
C
#规范(和)有一个关于
读写
的
原子
性
的
段落: 下列数据类型
的
读写
应该是
原子
的
: bool、char、字节、s字节、short、ushort、uint、int、float和引用类型此外,前一个列表
中
具有基础类型
的
枚举类型
的
读和写也应该是
原子
的
。其他类型
的
读和写,包括l
浏览 5
提问于2013-03-06
得票数 7
回答已采纳
3
回答
是否可以以编程方式更改全局偏移表/GOT或过程链接表/PLT?
、
、
、
、
某些特定于平台
的
特性(如SSE或AVX )
的
可用性可以在运行时确定,如果不想为不同
的
特性编译和发布不同
的
对象,这是非常有用
的
。在ELF平台上对具有外部链接
的
函数
的
调用已经是间接
的
,并通过过程链接表/PLT和全局偏移表/GOT。假设有两个内部
函数
,一个总是基本
的
_do_something_basic,另一个是以某种方式优化
的
_do_something_avx版本,
浏览 8
提问于2016-11-10
得票数 8
回答已采纳
2
回答
原子
读入
C
、
、
、
、
根据
的
说法,由于处理器缓存
的
问题,ints
的
读取(以及这些
指针
--或者我假设
的
那样)在
C
中
并不是
原子
的
,所以,我
的
问题是,我可以使用某些程序集来使读
原子
化,还是需要使用锁?我查看了几组
原子
操作库,到目前为止,我还无法找到一个用于
原子
读取
的
函数
。谢谢。
浏览 7
提问于2011-07-13
得票数 9
回答已采纳
2
回答
compare_exchange_weak提供了什么
原子
性?
、
来自
的
报价 我很难理解上面提到
的
这个词。由
浏览 7
提问于2022-08-14
得票数 0
回答已采纳
1
回答
64位系统上.NET
的
原子
读/写大小?
、
、
C
#规范指出,对于32位或更小
的
类型(以及引用),
读写
都是
原子
的
。因此,如果我
的
类中有一个Int32字段,我知道多个线程可以对它进行
读写
,并且它们在操作中将是
原子
的
,因此值将总是一致
的
(虽然缓存问题是一个潜在
的
问题,但这不是这个问题
的
重点)。这在64位系统上也是一样
的
吗?如果我编译我
的
应用程序为64位,这是否意味着Int64仍然被认为不是
浏览 2
提问于2011-10-20
得票数 6
回答已采纳
2
回答
在访问类数据时替代互斥锁/解锁
、
、
std::vector<double> m_data; my_class(); //non-copyablerun()和get_data()可能被不同
的
openmp(因为am使用openmp,所以m_mutex和lock是omp_init_lock();等命令
的
RAII包装器)。但是,创建和销毁get_data ()
的
锁非常昂贵(当我分析我
的
代码时,这是最昂贵
的
操作--我经常调用get_data() )。 get_data()**
浏览 6
提问于2011-06-09
得票数 0
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
C语言:函数指针数组和函数指针数组指针的深度剖析
知识分享:C 语言函数指针之回调函数
C语言编程指针变量作为函数参数
李鹏飞:C语言指针和函数详解
C语言编程:以实例教你学指向函数的指针
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
云直播
活动推荐
运营活动
广告
关闭
领券