社区
C语言
帖子详情
如何写出原子操作的语句?
yangss2006
2008-05-04 07:59:57
请教原子操作就是没有办法中断的操作的吧!那么一个C语句往往会分解成若干条汇编语句,而且在这些语句中,没有什么措施可以保证不被中断吧?
请教了,*p = 123;这么一条赋值语句能写成原子操作的形式吗?
...全文
101
2
打赏
收藏
如何写出原子操作的语句?
请教原子操作就是没有办法中断的操作的吧!那么一个C语句往往会分解成若干条汇编语句,而且在这些语句中,没有什么措施可以保证不被中断吧? 请教了,*p = 123;这么一条赋值语句能写成原子操作的形式吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
c265n46
2011-04-12
打赏
举报
回复
不知道这个老帖子现在还能不能回。不过我最近看了PTypes的源码,
它里面有这样的一个文件"patomic.cxx"
里面是这样实现一个值交换的原子操作的
int __fastcall pexchange(int* target, int value)
{
int r = *target;
*target = value;
return r;
}
__fastcall 使用寄存器传参,在线程切换时会保存现场。因此多线程也不会影响。
mymtom
2008-05-04
打赏
举报
回复
应用程序通常不需要这种层次的操作. 如果有需要, 通常是在多线程和多进程的情况下,可以使用信号量解决.
操作系统的层次上,需要硬件指令的支持(如SWAP), 在必要的情况下用开关中断的指令实现(CLI, STI)原子操作.
对int变量赋值的操作是原子的吗?为什么?
原问题:什么指令集支持
原子操作
?其原理是什么?如果考虑到全部的指令集,问题太大了,这里简化下。以X86和ARM为例。
原子操作
是不可分割的操作,在执行完毕时它不会被任何事件中断。在单处理器系统(UniProce...
mysql 原子写_在MySQL上加入insert / update是一个
原子操作
吗?
@H_502_1@在一个MysqL数据库中,每个基于InnoDB的表都启用了自动提交,子查询和/或连接的查询是原子的吗?@H_502_1@例子:@H_502_1@> INSERT INTO用户SELECT(x,y,z)FROM users,comments WHERE users.id = comments....
面试官:Redis的事务满足原子性吗?
谈起数据库的事务来,估计很多同学的第一反应都是ACID,而排在ACID中首位的A原子性,要求一个事务中的所有操作,要么全部完成,要么全部不完成。熟悉redis的同学肯定知道,在redis中...
STM32学习笔记(4):
原子操作
(Atomatic Operations)
原子操作
就是对寄存器的单个数据位的Read-Modify-Write操作,并且整个操作过程不会被其他总线活动中断,以避免产生数据冲突。
原子操作
有两种实现方式:硬件软件结合的方式和软件方式。单独的软件方式的Read-Modify-...
原子操作
原子操作
定义实现总结 定义 所谓
原子操作
,就是“不可中断的一个或一系列操作” 单核CPU: 在单核CPU中,能够在一条指令中完成的操作都可以看作为
原子操作
。无论是设备中断请求、时间片超时、程序主动schedule...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章