最新 最热

《吊打面试官》系列-乐观锁、悲观锁

关于线程安全一提到可能就是加锁,在面试中也是面试官百问不厌的考察点,往往能看出面试者的基本功和是否对线程安全有自己的思考。

2022-02-17
2

JAVA多线程(二)

(一)synchronized: Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。

2022-02-09
5

JDK的锁优化

线程遇到synchronized关键词时,需要获取锁,这个时候需要使用系统调用获取互斥量,如果没有获取到则被操作系统挂起线程,因为此过程需要进行用户态转内核态,而且有可能需要切换线程,操作比较重,所以称为重量级锁。...

2022-01-12
2

初级JAVA:Sleep、Wait、Yield、Suspend

三者都可以使得当前的线程退出执行状态,但是有些使得当前线程进入阻塞状态,有的却不会。

2022-01-06
2

我想教你实现Java进程同步,因为我是浪漫的程序员!

在我们使用的操作系统中为什么要有进程同步机制?我们的计算机系统刚开始是单道批处理系统,意思就是同一时间段内只能运行一个程序,这个程序运行完,才能运行另一个程序,这样就会导致运行效率太低,系统中的资源得不到充分的利...

2021-12-17
3

【大厂Java并发编程面试题解】显式锁(Explicit Locks)

Java5之前只能用synchronized和volatile,Java5后Doug Lea提供了ReentrantLock,并非为了替代内置锁,而是当内置锁的机制不适用时,作为一种可选择的高级功能。 内置锁不适用的场景包括:...

2021-12-07
3

并发编程系列之ReentrantLock用法简介

ReentrantLock是实现底层的Lock接口的可重入锁实现。支持公平锁模式和非公平锁模式。

2021-12-02
3

到底什么是重入锁?拜托,一次搞清楚!

JDK中独占锁的实现除了使用关键字synchronized外,还可以使用ReentrantLock。虽然在性能上ReentrantLock和synchronized没有什么区别,但ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的...

2021-12-02
2

到底什么是重入锁?拜托,一次搞清楚!

JDK中独占锁的实现除了使用关键字synchronized外,还可以使用ReentrantLock。虽然在性能上ReentrantLock和synchronized没有什么区别,但ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的...

2021-11-26
2

一文详解,死锁与解决方案(附源码)

想象一个场景,账户A给账户B转账,同时账户B也给账户A转账,两个账户都需要锁住余额,所以通常会申请两把锁,转账时,先锁住自己的账户,并获取对方的锁,保证同一时刻只能有一个线程去执行转账。...

2021-11-10
2