腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
3
回答
Linux
内核中的
原子
操作
实现
、
、
、
最近,我查看了一个
原子
读写的
Linux
内核
实现
,并提出了一些问题。atomic_set(v,i) (((v)->counter) = (i)) 对于读和写
操作
除非在某个地方有另一个技巧,否则我不明白有什么保证可以保证此
操作
在程序集域中是
原子
的。我想一个显而易见的答案是,这样的
操作
会转换成一个程序集
操作
代码,但即便如此,如果考虑到
浏览 2
提问于2012-02-15
得票数 16
回答已采纳
2
回答
如何在AIX/powerpc上
实现
原子
分配?
、
、
、
我只需要
原子
读
操作
和
原子
写入
操作
(我不使用获取和添加、比较和交换等
操作
)。我只想澄清:对我来说,“
原子
性”不仅意味着“没有交错”,还意味着“跨多个核的可见性”。这些
操作
对指针进行
操作
,因此对'int‘变量的
操作
对我来说是无用的。 如果我声明变量“易失性”,C标准说变量可以被未知因素修改,因此不受优化的限制。内核提供了fetch_and_addlp()服务,可以用来
实现
原子
读取(例如,v =
浏览 5
提问于2011-07-06
得票数 3
1
回答
如何
实现
原子
操作
?
、
、
gcc内置
原子
操作
: 函数执行
原子
化如何在
Linux
gcc/g++上
实现
该
操作
?
浏览 25
提问于2017-09-15
得票数 0
7
回答
UNIX便携式
原子
操作
、
、
、
在C中是否有一种(POSIX-)可移植的方式用于
原子
变量
操作
,类似于带有线程的可移植线程?
原子
操作
是
原子
执行的“增量和获取”之类的
操作
,这意味着没有上下文切换可以干扰
操作
。在
Linux
内核空间中,我们必须使用类型,而在Java中我们有包。在
Linux
上,atomic.h文件提供
原子
操作
,但是包含是依赖于平台的,例如#include <asm-x86_64/atomic.h>,
浏览 25
提问于2009-07-15
得票数 33
回答已采纳
1
回答
在Java1.6中File.renameTo() atomic在
linux
上?
、
、
、
、
正如标题所说,在Java1.6中,File.renameTo()是POSIX
linux
上的
原子
操作
吗?根据的说法,POSIX
Linux
中的重命名
操作
是
原子
的,然而,它是否支持File.renameTo的true
浏览 2
提问于2013-07-18
得票数 3
回答已采纳
1
回答
原子
操作
实现
、
、
我在<sys/atomic.h>中使用SunOs提供的
原子
操作
,它是现在为了使其可用,我必须检查这个函数返回的旧值和被调用函数cmp传递的旧值是否相同,如果是,则
操作
是否成功。关于CAS,我读到称它为无锁
操作
是用词不当,因为它最终会在硬件上锁定(在总线上锁定),对吗?这就是为什么CAS的运营成本很高。
浏览 4
提问于2011-06-17
得票数 1
回答已采纳
1
回答
如何
实现
std::
原子
、
、
、
、
例如,
Linux
提供了一种机制,即futex。借助futex,我们可以
实现
mutex和semaphore。此外,我知道futex是由低级
原子
操作
(如CompareAndSet、CompareAndSwap )
实现
的。对于std::atomic,我知道它是基于C++11引入的内存模型
实现
的,但是,我不知道内存模型是如何在底层
实现
的。如果它也是由
原子
操作
(如CompareAndSet )
实现
的,那么std::atomic
浏览 2
提问于2019-12-04
得票数 9
回答已采纳
3
回答
带有互斥的
Linux
并发脚本
、
、
、
在我的
Linux
服务器上,我需要同步使用BASH和PHP编写的多个脚本,这样它们中只有一个能够启动一个系统关键作业,这是一系列BASH/PHP命令,如果由两个或多个脚本同时执行,就会造成混乱。根据我在C++中进行多线程的经验,我熟悉互斥的概念,但是如何为在单独进程中运行、当然不是用C++编写的一堆脚本
实现
互斥?但是,在我看来,文件写入和读取
操作
必须是完全
原子
化的,才能让这种方法以100%的概率完成,而且同样的要求也适用于任何其他的同步方法。我确信文件写入/读取
操作
不是
原子</e
浏览 5
提问于2012-11-07
得票数 6
回答已采纳
2
回答
在我的系统中,对磁盘的
原子
写入的大小是多少?
、
在这个access_log指令的文档中,nginx文档表示如何确定系统上的大小?
浏览 0
提问于2014-05-29
得票数 13
回答已采纳
1
回答
超标量处理器上的
原子
运算
、
、
、
、
原子
函数在一个简单的指令中执行。他们不能在中游被打断.如果同时请求两个
操作
,则必须在第二个
操作
进行之前完成。它从不睡觉。在十五级管道处理器上,如何确定
原子
功能的
原子
执行?
原子
操作
对性能有不良影响吗?
Linux
具有多个
原子
函数,作为一条指令具有以下类型: volatile int counter;它的定义就像SMP-安全。有可能在超标量上使用SMP安全
原子</e
浏览 4
提问于2015-04-18
得票数 0
回答已采纳
2
回答
在不丢失元数据的情况下在
Linux
上保存
原子
文件
、
、
、
、
我想知道如何在
Linux
上
实现
最后一步。我知道rename是
原子
移动的,但它不保存元数据。另一方面,我可以打开文件并用新文件的内容覆盖数据,这将保留所有元数据,但不是
原子
操作
。对解决这个
浏览 1
提问于2009-11-08
得票数 8
回答已采纳
2
回答
内核中信号量的
实现
?
、
、
、
、
我正在阅读“
操作
系统概念”来理解信号量。这本书的节选:我的问题是: 这个自旋锁是如何
实现
的?它解释了信号量作
浏览 5
提问于2011-06-13
得票数 2
3
回答
如何使“get”从标准C生成x86-64的“get”指令?
、
、
受的启发,我想知道是否有人知道如何让gcc在
Linux
86-64平台上生成x86-64 bts指令(位测试和设置),而不求助于内联程序集或非标准的编译器本质。编辑:C源语言不支持
原子
操作
,所以我对获得
原子
测试和设置并不特别感兴趣(尽管这是测试和设置最初存在的原因)。如果我想要一些
原子
的东西,我知道我没有机会使用标准C源代码:它必须是一个内在的,一个库函数,或内联程序集。(我已经在支持多个线程的编译器中
实现
了
原子
操作
。)
浏览 8
提问于2010-01-11
得票数 17
5
回答
用于执行
原子
操作
的函数
、
C运行时库或其他实用程序库是否支持执行
原子
操作
(如整数的递增/递减)等函数?使用这些函数是否比使用互斥等普通的同步原语更有好处?
操作
系统: Windows、
Linux
、Solaris和VxWorks
浏览 1
提问于2010-02-20
得票数 8
回答已采纳
1
回答
如何在
Linux
的多线程中
实现
同步
我有四个线程,我需要在这些线程之间转换数据,函数如下: processing; processing;
linux
中是否有任何同步功能可以确保线程到达同一时间点在windows中,我使用
原子
相加和
原子
比较来
实现
__sync(),在
Linux
中我没有发现
原子
比较函数。
浏览 2
提问于2011-09-20
得票数 2
回答已采纳
1
回答
使用std::
原子
与futex系统调用
、
、
、
、
这意味着我们不能在带有超时的
原子
变量上睡觉。在
Linux
上,还不清楚是否可以将std::atomic与futex混合使用。在所有平台上,futexes都是四字节整数,必须在四字节边界上对齐.在futex上执行的
操作
是在futex_op参数中指定的;val是一个值,其意义和目的取决于futex_
浏览 5
提问于2021-04-10
得票数 12
回答已采纳
1
回答
线程编程中锁与
原子
操作
的关系
、
、
所有锁都是使用
原子
操作
实现
的吗?在一些书中,它说“一个锁需要几个
原子
操作
”。我认为
原子
操作
和锁是不同的东西。但看来我错了。锁和
原子
操作
之间有什么关系?
浏览 1
提问于2019-03-16
得票数 3
2
回答
基于
原子
操作
的自旋锁的解锁可以直接将锁标志设置为零吗?
、
、
、
、
例如,我有一个独占的基于
原子
操作
的自旋锁
实现
,如下所示:{} 其中AtomicOps::Exchange32在windows上使用InterlockedExchange
实现
,在
linux
上使用__atomic_exchange_n
实现
。
浏览 2
提问于2015-09-19
得票数 2
1
回答
锁定之前/之后的代码总是串行执行的吗?
、
、
、
、
CodeBlockA; CodeBlockB;代码块可能包含很多代码,只需将其作为一个单元。
浏览 14
提问于2021-07-29
得票数 0
1
回答
x86 128位
原子
操作
、
、
、
如何在x86中
实现
128位
原子
操作
? 英特尔的系统编程指南,第1部分,8.1锁定
原子
操作
指定了保证的16位、32位和64位
原子
操作
。那么,您可以通过使用LOCK前缀执行两个64位
操作
来
实现
128位
原子
操作
吗?就像..。
浏览 3
提问于2010-11-05
得票数 6
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Linux 内核原子操作
Go语言原子增值操作
并发编程之原子操作类
哪些Python操作是原子性的?
Java并发编程之原子操作类
热门
标签
更多标签
云服务器
ICP备案
云直播
对象存储
腾讯会议
活动推荐
运营活动
广告
关闭
领券