开发者社区> 问答> 正文

Java中如何保证线程安全?

如何保证线程安全?

本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 点击链接欢迎加入感兴趣的技术领域群。

展开
收起
游客pklijor6gytpx 2019-11-11 14:28:55 4504 0
4 条回答
写回答
取消 提交回答
  • 下一站是幸福

    在Java语言里面,不可变(Immutable)的对象一定是线程安全的,无论是对象的方法实现还是方法的调用者,都不需要再进行任何的线程安全保障措施。

    2020-04-30 11:29:45
    赞同 展开评论 打赏
  • 单体服务线程安全可使用Synchronized和ReentrantLock锁住相关代码,锁对象或是块必须是多线程共享的。

    unsafe提供的CAS或是手动定义的乐观锁在并发较小但是有并发可能的情况下可以使用。

    确保共享变量和对象的访问是串行的,或整体操作是原子的(例如不并发使用SimpleDataFormat);并发的数据修改要选择使用线程安全的静态类,如JUC包下的ConsurrentHashMap等。

    2019-11-12 12:02:31
    赞同 展开评论 打赏
  • 为之则易,不为则难

    Java中可以使用synchronized关键保证线程安全,也可以使用jdk提供的Lock锁,或者使用cas乐观锁来实现线程安全

    2019-11-12 10:01:40
    赞同 展开评论 打赏
  • 使用synchronized和Lock

    2019-11-11 14:29:49
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载