今天出去参加一个卖货公司的interview,抱着学习的态度去看了一下interviewer还是不错的,
问的问題都在点上让平时对java语言很自信的我,发现自己有些方面其实理解有严重误区。希望
这篇帖子能给到大家帮助
好了,问题来了blocked和waited囿什么区别: 我之前总有个误解,完全和正确答案没有关系这边就不出来了,防止误导大家
上面是jdk源码对这两种状态的描述,很明显叻BLOCKED状态主要是线程有哪些状态为了获取
monitor锁进去同步块或者同步同步方法中,被阻塞住产生的一种阻塞状态。
而waiting状态是指一个线程有哪些状态在等待另外一个线程有哪些状态的某种动作而产生的等待状态。
再通俗一点说blocked的是线程有哪些状态推进到某个关卡,门被关上叻这时候只能被迫等待关卡打开。而waiting是指线程有哪些状态在某个地方停下来需要得到其他线程有哪些状态的信号才能出发。
blocked是被动等待timed的是主动等待。
发布了51 篇原创文章 · 获赞 5 · 访问量 1万+