社区
Linux/Unix社区
帖子详情
关于原子操作的疑问
akainixing
2012-03-18 11:08:09
这是Java多线程编程的老生常谈了。所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行倒结束,中间不会有任何 context switch (切换到另一个线程)。
百度上写的
不过我看书上写的意思好像是在进程之间不让切换
不知道原子操作时进程还是线程???
还有原子操作和临界区什么关系?
原子操作是一种定义,而临界区是一种实现方法?
...全文
134
1
打赏
收藏
关于原子操作的疑问
这是Java多线程编程的老生常谈了。所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行倒结束,中间不会有任何 context switch (切换到另一个线程)。 百度上写的 不过我看书上写的意思好像是在进程之间不让切换 不知道原子操作时进程还是线程??? 还有原子操作和临界区什么关系? 原子操作是一种定义,而临界区是一种实现方法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Arnold9009
2012-03-18
打赏
举报
回复
原子操作是一种定义,就是保证这个操作一次完成,不会被中断
linux
原子操作
也就是说, 汇编上,只有, strex 才是真正的原子,ldrex 就是先到先得了。因为这只是读,但是写就不一样了。我的
疑问
: 如果进程没有获得原子变量怎么办,是休眠还是返回,还是空转。最终会是这段代码,当然只是一个 加一的操作。然后是一个 关于 atomic 使用的例子。不能从C语言来看,要从汇编来看。但是实际的情况有可能是这样。然后是
原子操作
的 底层实现。首先是为什么要有
原子操作
。A进程没有得到想要的结果。这里需要知道两个命令。
int 变量直接赋值,是
原子操作
吗?
a = 100; ... b = a; /* atomic ? */
java中的13(12)个
原子操作
类
明明就是12个 为什么都说是13个 完全搞不懂
CHI trans--Home节点发起的操作
总目录:CHI协议简读汇总-CSDN博客。
java compareandset 包_java – compareAndSet不成功操作的内存效果
Java通过其原子类公开CAS操作,例如boolean compareAndSet(expected,update)JavaDocs指定了compareAndSet操作的内存效果,如下所示:compareAndSet and all other read-and-update operationssuch as getAndIncrement have the memory effects of ...
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章