- 博客(6)
- 收藏
- 关注
原创 什么情况下会使用到ReentrantLock的重入功能?
水果店推出了一套新购买方案,购买水果的时候也可以购买水果盒子,水果店免费帮助包装,并且水果价钱便宜1块,另外如果只是想购买水果盒子,水果店也是可以出售的。假设锁不支持重入,那会出现什么?那么线程就会在第二次lock.lock()的时候获取不到锁而阻塞,而想要释放锁,又需要该线程执行下去,这样就死锁了,所以可重入锁的使用场景就来了。当然,上面的需求也可以使用原子类AtomicInteger来实现,这里仅仅只是想说明一下,随着需求的增加,有时候锁的重入是难以避免的,所以支持重入是锁的一项重要功能。
2024-04-14 00:19:20
221
1
原创 Java线程状态的一点笔记
进入“阻塞”态是被动的,并不是由我们控制的,但是“等待”态是可以由我们进行控制的,然后还有对应的方法可以唤醒线程,使其从“等待”态变成“运行”态。在聊到“等待”的时候,Java里面进入“等待”(包括“超时等待”)有两个方法,一个是wait(),一个是sleep(),两者也是有区别的。了解了这些区别后,“超时等待”态就很好理解了,给“等待”态设置一个时间,等待时间到了,就唤醒线程,使其从“等待”变成“运行”。根据上面的图,我们还知道还有等待,也可以让线程“不执行”,那么这两者的区别是什么呢?
2024-04-11 23:02:50
260
原创 IDEA打开报错,如Key com.tang.intellij.lua.luacheck.LuaCheckSettings duplicated
记录IDEA在使用过程中遇到到一些问题。
2023-05-14 15:30:22
1295
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人