深入理解java虚拟机-第13章-线程安全与锁优化

网友投稿 212 2022-06-16


线程安全

java语言中的线程安全

  1 不可变。Immutable 的对象一定是线程安全的

  2 绝对线程安全 一个类要达到不管运行时环境如何,调用者都不需要额外的同步措施,通常需要付出很大甚至是不切实际的代价,在java api中标注自己是线程安全的类,大多数都不是绝对的线程安全

  3 相对线程安全 

  4 线程兼容  对象本身不是线程安全的,但是可以通过在调用端正确地使用同步手段来保证对象在并发环境中可以安全使用

  5 线程对立

线程安全的实现方法

  1 互斥同步 Murual Exclusion & Synchronization

    常见的并发正确性保障手机,同步是指多个线程并发访问共享数据时,保存证共享数据在同一时刻只被一个线程使用

    最基本的互斥手段是synchronized关键字。

    还可以使用java.util.concurrent包中的锁来实现同步 ReentrantLock,

    JDK1.6对synchronized做了优化,效率与ReentrantLock基本上是完全持平了。

  2 非阻塞同步

    基于冲突检测的乐观并发策略

    CAS操作 Compare-and-Swap

  3 无同步方案

锁优化

  1、自旋锁与自适应自旋

  2、锁消除

  3、锁粗化

  4、经量级锁

  5、偏向锁

 

整本书 可以在Blog :《深入理解Java虚拟机》笔记  中来统查看要点。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:深入理解java虚拟机-第12章Java内存模型与线程
下一篇:jsp解决kindeditor在线编辑器struts图片上传问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~