文档章节

Synchronized和Lock的区别

 最胖的瘦子
发布于 04/21 13:55
字数 444
阅读 9
收藏 0

锁类型:

可重入锁:在执行对象中所有的同步方法时,不必再次去获取锁

可中断锁:在等待获取锁过程中可中断

读写锁:对线程的读写分为两个部分,读过程中多线程可一起访问readLock,写过程中必须同步一起读

公平锁:按照等待获取锁时间长的长短来获取锁,等待越长的具有优先获得锁的权利

 

Synchronized

存在层次上:java的关键字,在jvm层面

锁的释放:以获取锁的代码块执行完毕释放,若是异常,jvm则会让线程释放锁

锁的阻塞:若是A线程获得锁,则B等待;若是A出现阻塞,则B一直处于阻塞

锁状态:无法判断

锁类型:可重入、非公平、不可中断

性能:少量同步

 

Lock

存在层次上:java

锁的释放:在finally中必须释放锁,lock.unlock,否则会造成死锁

锁的阻塞:分情况而定,线程可以尝试获得锁,线程可以不用一直等待,主要是参考Lock接口中的lockInterruptibly()方法

锁状态:可以判断,可以通过trylock()方法来得知当前线程是否获得锁

锁类型:可重入、公平(亦可非公平)、可中断;ReentrantLock中默认是非公平锁的,new NofairSync

性能:大量同步

本文转载自:https://blog.csdn.net/u012403290/article/details/64910926

粉丝 4
博文 34
码字总数 19073
作品 0
杭州
私信 提问
深入研究 Java Synchronize 和 Lock 的区别与用法

在分布式开发中,锁是线程控制的重要途径。Java为此也提供了2种锁机制,synchronized和lock。做为Java爱好者,自然少不了对比一下这2种机制,也能从中学到些分布式开发需要注意的地方。 我们...

again-Y
2013/10/23
9.8K
6
比较ReentrantLock和synchronized和信号量Semaphore实现的同步性能

为了比较一下ReentrantLock和synchronized的性能,做了一下性能测试: 参考http://my.oschina.net/leoson/blog/107327 得出结论: (1)使用Lock的性能比使用synchronized关键字要提高4~5倍;...

Mr&Cheng
2013/02/01
444
0
ReentrantLock与Synchronized

ReentrantLock和synchronized两种锁定机制 ReentrantLock和synchronized两种锁定机制 1.应用synchronized同步锁 把代码块声明为 synchronized,使得该代码具有 原子性(atomicity)和 可见性...

J星星点灯
2017/09/09
0
0
syncronized 与 Lock 的区别

Lock是个接口;synchronized是Java中的关键字,内置语言实现 synchronized发生异常时,会自动释放线程占有的锁,因此不会发生异常死锁;lock发生异常时,如果没有主动通过unlock()方法释放锁...

五六柒
07/09
79
0
synchronized 与 Lock 的区别

最近在做一个监控系统,该系统主要包括对数据实时分析和存储两个部分,由于并发量比较高,所以不可避免的使用到了一些并发的知识。为了实现这些要求,后台使用一个队列作为缓存,对于请求只管...

疯狂的兔子
2015/03/05
104
0

没有更多内容

加载失败,请刷新页面

加载更多

作为一个(IT)程序员!聊天没有话题?试试这十二种技巧

首先呢?我是一名程序员,经常性和同事没话题。 因为每天都会有自己的任务要做,程序员对于其他行业来说;是相对来说比较忙的。你会经常看到程序员在发呆、调试密密麻麻代码、红色报错发呆;...

小英子wep
今天
12
0
【SpringBoot】产生背景及简介

一、SpringBoot介绍 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要...

zw965
今天
4
0
简述并发编程分为三个核心问题:分工、同步、互斥。

总的来说,并发编程可以总结为三个核心问题:分工、同步、互斥。 所谓分工指的是如何高效地拆解任务并分配给线程,而同步指的是线程之间如何协作,互斥则是保证同一时刻只允许一个线程访问共...

dust8080
今天
6
0
OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
3.3K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部