栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

多线程线程安全

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

多线程线程安全

文章推荐:
多线程程序中操作的原子性

总结:
1.一些基本的内存读写操作是本身已经被硬件提供了原子性保证,比如一个字节的读写,对齐到16位边界的字的读写,对齐到32位边界的双字的读写。
扩展还有:对齐到64位边界的四字的读写,未缓存且在32位数据总线范围之内的内存地址的访问,对单个cache line中缓存地址的未对齐的16/32/64位访问。
所以,如果可以汇编代码是一步完成的,就已经提供了原子性保证,比如x = 1;

2.一个结构体中有存在多个变量会被CPU同时读进寄存器,如果不用同一个锁,则依旧会出现读写冲突。方法是要么使用一个锁进行管理,要么是不让其同时读进寄存器。

Windows上InterlockedXXXX的API
GNU/Linux上linux kernel中atomic_32.h
GCC中的Atomic Builtins (__sync_fetch_and_add()等)
Java中的java.util.concurrent.atomic
C++0x中的atomic operation
Intel TBB中的atomic operation

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/697373.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号