保证线程安全的方法

 时间:2026-02-12 01:25:19

1、原子性:一个或者多个操作在 CPU 执行的过程中被中断

2、可见性:一个线程对共享变量的修改,另外一个线程不能马上知道

3、有序性:程序执行的顺序没有按照代码的先后顺序执行

1、针对第一个因素,JDK里面提供了很多atomic类, AtomicLong, AtomicBoolean等等,这些类本身可以通过CAS来保证操作的原子性;Java也提供了锁机制,锁内的代码块在同一时刻只能有一个线程执行,例如synchronized关键字。

2、针对第二个因素,可用synchronized关键字加锁保证,将操作共享数据的语句加入synchronized关键字,同一时刻只能有一个线程执行,直到完成。

也可用volatile关键字,可以保证修改共享数据后对其他线程可见。

3、针对第三个因素可以使用Lock锁。Lock锁很灵活,但需要手动释放和开启。在并发量比较高的情况下,Lock锁优于synchronized关键字。

  • VS2015如何使用自定义的ico
  • 如何制作迷你涡轮机小风扇?
  • 怎样做炸鸡米花
  • ARP断网攻击是什么意思,ARP断网攻击怎么办
  • kettle 行统计和列统计之和
  • 热门搜索
    日本旅游地图 巴黎旅游 常州旅游景点大全 荆州旅游 北京市旅游局 旅游文章 兰州旅游景点大全 达州旅游 本溪旅游景点 汕头南澳岛旅游攻略