在Java语言里面,不可变(Immutable)的对象一定是线程安全的,无论是对象的方法实现还是方法的调用者,都不需要再进行任何的线程安全保障措施。
单体服务线程安全可使用Synchronized和ReentrantLock锁住相关代码,锁对象或是块必须是多线程共享的。
unsafe提供的CAS或是手动定义的乐观锁在并发较小但是有并发可能的情况下可以使用。
确保共享变量和对象的访问是串行的,或整体操作是原子的(例如不并发使用SimpleDataFormat);并发的数据修改要选择使用线程安全的静态类,如JUC包下的ConsurrentHashMap等。
Java中可以使用synchronized关键保证线程安全,也可以使用jdk提供的Lock锁,或者使用cas乐观锁来实现线程安全
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。