什么是线程阻塞

 我来答
learnok
推荐于2017-11-23 · TA获得超过323个赞
知道小有建树答主
回答量:286
采纳率:0%
帮助的人:136万
展开全部
线程A等待线程B的数据,线程B等待线程A的数据,互相等待,就会陷入阻塞,这也是一种线程阻塞。

阻塞状态是正在运行的线程遇到某个特殊情况。例如,延迟、挂起、等待I/O操作完成等。 进入阻塞状态的线程让出CPU,并暂时停止自己的执行。线程进入阻塞状态后,就一直等待,直到引起阻塞的原因被消除,线程又转入就绪状态,重新进入就绪队列排队。
腾讯电脑管家
2018-07-05 · 百度知道官方认证企业
腾讯电脑管家
腾讯电脑管家是腾讯公司推出的免费安全管理软件,能有效预防和解决计算机上常见的安全风险,并帮助用户解决各种电脑“疑难杂症”、优化系统和网络环境,是中国综合能力最强、最稳定的安全软件。
向TA提问
展开全部
一个线程都要从运行到结束都要经过3个阶段:
1、正在运行
2、准备结束运行
3、结束运行
可以通过下面这三个方法结束一个线程。
1、使用stop()方法强制结束线程。
2、使用thread.interrupt()方法发送中断。
3、在Thread对象中设置共享变量,通过在run方法中不断检测该变量的值来决定是否结束。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灬蓝色丿风之翼
2017-12-13 · TA获得超过108个赞
知道答主
回答量:31
采纳率:0%
帮助的人:15万
展开全部
阻塞状态的线程的特点是:该线程放弃CPU的使用,暂停运行,只有等到导致阻塞的原因消除之后才回复运行。
导致阻塞的原因:
A、线程执行了Thread.sleep(int millsecond);方法,当前线程放弃CPU,睡眠一段时间,然后再恢复执行
B、线程执行一段同步代码,但是尚且无法获得相关的同步锁,只能进入阻塞状态,等到获取了同步锁,才能回复执行。
C、线程执行了一个对象的wait()方法,直接进入阻塞状态,等待其他线程执行notify()或者notifyAll()方法。
D、线程执行某些IO操作,因为等待相关的资源而进入了阻塞状态。比如说监听system.in,但是尚且没有收到键盘的输入,则进入阻塞状态。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式