关于锁的问题

来源:5-18 循环尝试,不释放CPU

sadcloud

2020-02-13

悟空老师,学习锁后我有两个疑问,盼解惑
1.自旋 和 非阻塞锁是一个概念吗? 我的理解同样无法获取锁,自旋是占着cpu不断检测锁,而非阻塞是让线程先去干别的事情,感觉不是一个概念啊。
2.我在看<<java并发编程的艺术>>时发现 它写的时lock锁对可中断锁的解释是 获取到锁的线程如果被中断会释放锁,可是您讲的是等待获取锁时可以响应中断。

谢谢老师

写回答

1回答

悟空

2020-02-13

第一个问题,自旋和非阻塞,不是同样的概念,但是可以同时成立,又是自旋,又是非阻塞。

第二个问题,我看了《java并发编程的艺术》,我认为他描述的不准确:

//img.mukewang.com/szimg/5e44f5470904efe315580376.jpg

你觉得哪种锁线程被中断就会释放锁?据我所示,是需要unlock才能释放锁的。我认为那本书的作者想表达的意思和我讲课的内容是一致的,但是他笔误了。

2
5
sadcloud
回复
悟空
非常感谢悟空老师的解答!
2020-02-13
共5条回复

深度解密Java并发工具,精通JUC,成为并发多面手

JUC全方位讲解,构建并发工具类知识体系

1599 学习 · 573 问题

查看课程