首页 > 编程语言 > 详细

深入理解JAVA虚拟机阅读笔记6——线程安全与锁优化

时间:2018-06-24 11:16:25      阅读:144      评论:0      收藏:0      [点我收藏+]

线程安全:如果一个对象可以安全的被多个线程同时使用,那它就是线程安全的。

一、Java中的线程安全

1.不可变

  不可变的对象一定是线程安全的。String、枚举类型、java.lang.Number的部分子类如Long和Double等数值包装类型,BigInteger和BigDecimal等大数据类型。

  AtomicInteger和AtomicLong并非是不可变的。

2.绝对线程安全

  如Vector类是线程安全的,但是如果多个线程同时对Vector数据进行增加或者减少,那么Vector线程不是绝对线程安全的。

3.相对线程安全

  单独操作是线程安全的,连续操作需考虑同步问题。

4. 线程兼容

5. 线程独立

二、线程安全的实现方法

1. 互斥同步

同步是指在多个线程并发访问共享数据时,保证共享数据在同一个时刻只被一个(或者一些)线程使用。

互斥是实现同步的一种手段,临界区(Critical Section)、互斥量(Mutex)和信号量(Semaphore)都是互斥实现方式。

互斥是因,同步是果;互斥是方法,同步是目的。

深入理解JAVA虚拟机阅读笔记6——线程安全与锁优化

原文:https://www.cnblogs.com/bopo/p/9219655.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!