stop()与subspend()区别 sleep()与wait()的区别

反对使用 stop() 因为其不安全,会解除由线程获取的所有锁定,而且对象处于一种不连贯状态,如果其他线程在那种状态下检查和修改他们,很难找出真正的问题  
反对使用subspend(),因为其很容易发生死锁,其虽然会暂停,但是仍然握有锁定的资源,使得其他线程不能访问其锁定的资源,除非等它重新运行,造成死锁(即占着茅坑不拉屎)
应在自己的Thread类中置入一个标志,指出线程应该活动还是挂起。若标志指出线程应该挂起,便用wait()命其进入等待状态。若标志指出线程应当恢复,则用一个notify()重新启动线程。
sleep() 令线程休息会儿,并把机会让给别人
wait()是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。即站在原地等待,直到notify() 提醒,本线程才进入对象锁定池准备获得对象锁进入运行状态
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值