保证线程安全的方法

 时间: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 行统计和列统计之和
  • 热门搜索
    打酱油什么意思 买房需要什么证件 荞麦枕头的功效与作用 实木运动地板 adc什么意思 幼儿园健康知识 运动会接力赛作文 鲫鱼汤的功效与作用 甲硝锉的作用 蓝砂石的功效与作用