如何保证线程安全?
接着前几篇博客的线程知识,我们这次来了解一点线程安全知识,了解的不多,希望对大家有用。
直接原因:
- 多个线程同时操作
- 非原子操作存在CAS
多线程出现问题的原因:
- 共享了内容
- 且内容可变
解决多线程问题的核心就是解决这两点。
解决方法:
- 删除共享内容
- 让共享内容不可变
- 每次使用新的对象
- 同时只有一个线程处理
总结:
1、无状态的对象都是线程安全的
2、不可变对象一定是线程安全的
3、没有竞态(多实例)的一定是线程安全的
4、加锁的可以是线程安全的
感谢您的阅读!