过氏分享 http://blog.sciencenet.cn/u/xirongguo

博文

多线程并发的汇总

已有 1718 次阅读 2022-4-30 11:03 |个人分类:系统工程|系统分类:科研笔记

Java多线程的协调主要通过Semaphore、Volatile、Lock以及Synchronized来实现,其中Semaphore、Voatile以及Lock的使用调优主要靠编程者来实现,而Synchronized经过JVM的调优(锁自升、锁消除、锁膨胀)在使用和性能上取得较好的平衡,用例较多。

一般情况下Lock的性能是Synchronized的4~5倍,Semaphore比Synchronized慢10~20个百分点(Synchronized的重量级锁就是通过Semaphore实现的),Atomic包下的原子锁性能比Lock高一个数量级。

线程的中断机制主要使用在线程阻塞的情况下(wait、sleep以及join),中断会触发阻塞线程的InterruptedException,只要在阻塞代码处捕捉该异常即可实现线程的退出。

Synchronized场景下,wait会释放锁而sleep则不会;其他场景需要显式释放锁。




https://m.sciencenet.cn/blog-427394-1336338.html

上一篇:微服务平台Fabric8集成到Openshift
下一篇:风控

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-2 23:54

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部