java中juc使用lock锁可以实现精准唤醒,但这样的话和单线程指定顺序执行有什么区别呢?

如题所述

    为什么用锁,肯定是多个进程同事访问,喂了确保数据一致性,才会加锁,确保同一时间只能有一个进程获取锁。你说的单线程制定顺序执行是什么意思没太懂,或许应该是多线程情况下,你制定一个队列,保证他们顺序执行。

    使用lock实现精准唤醒是相对于synchronize而言的,使用synchronized锁锁定代码块或者方法,自动加锁,运行完自动释放锁;用RetrantLock重入锁,可以在方法内精确加锁解锁,也可以针对某个锁实现唤醒,注意方法内加几个锁就要解几个锁

温馨提示:内容为网友见解,仅供参考
无其他回答

java中juc使用lock锁可以实现精准唤醒,但这样的话和单线程指定顺序执行...
使用lock实现精准唤醒是相对于synchronize而言的,使用synchronized锁锁定代码块或者方法,自动加锁,运行完自动释放锁;用RetrantLock重入锁,可以在方法内精确加锁解锁,也可以针对某个锁实现唤醒,注意方法内加几个锁就要解几个锁

JUC可重入读写锁ReentrantReadWriteLock的锁获取和释放流程
ReentrantReadWriteLock是Java中的一种实现读写锁的机制,它支持一个线程多次获取同一锁,类似于ReentrantLock的可重入特性。这意味着,一旦一个线程拥有一个锁,它能再次获取该锁而不会阻塞其他线程。在ReentrantReadWriteLock的架构中,读线程与写线程的交互被严格管理。当一个线程获取了读锁,其他线程可以...

7000+字图文并茂解带你深入理解java锁升级的每个细节
偏向锁的运作:在偏向锁加锁过程中,通过CAS操作将线程ID设置到markword中,如果设置成功,锁就被挂上。每次访问检查线程ID一致后,直接进入同步代码块执行。如果存在其他线程访问,偏向锁会被升级为轻量级锁,以减少竞争和冲突。轻量级锁与重量级锁的对比:轻量级锁将锁状态标志位之外的信息存储在栈帧中的...

应该怎样学习JAVA?顺序是什么?
AJAX(是JavaScript的一部分语法,专门做页面局部刷新)第五部分:JavaWEB项目 做一个B\/S结构的项目,将WEB前端和JavaWEB内容做一个整合练习。其实到这里为止,所有的系统都可以做了。但是用的技术很Low。没有用框架。

相似回答