V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Aresxue  ›  全部回复第 22 页 / 共 22 页
回复总数  421
1 ... 13  14  15  16  17  18  19  20  21  22  
2019-05-28 17:30:44 +08:00
回复了 qyizhong 创建的主题 程序员 请问各位实现线程安全除了加锁还能有啥别的操作
1.不要跨线程访问共享变量;
2.使共享变量是 final 类型的;
3.将共享变量的操作加上同步;
3.1 java 自身
3.1.1 锁,包括 synchronied 和 lock
3.1.2 cas,例如 ConcurrentHashMap
3.1.3 复制变量,一种用空间换时间的方式,典型的如 ThreadLocal ;
3.1.4 原子变量,LongAdder 和 Atomic*;
3.2 中间件,这个太多,缓存比如 redis、zookeeper、数据库()甚至文件都可以做。
ps:java 自身适用于单机情况,分布式下中间件一般更优。
1 ... 13  14  15  16  17  18  19  20  21  22  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1055 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 23:10 · PVG 07:10 · LAX 16:10 · JFK 19:10
Developed with CodeLauncher
♥ Do have faith in what you're doing.