导读 大家好,我是小曜,我来为大家解答以上问题。暂停线程id工具,暂停线程很多人还不知道,现在让我们一起来看看吧!1、由于java废弃了suspend...
大家好,我是小曜,我来为大家解答以上问题。暂停线程id工具,暂停线程很多人还不知道,现在让我们一起来看看吧!
1、由于java废弃了suspend和resume,所以目前来看使用Thread类貌似没有不修改线程的执行体而从外部暂停线程的方法,javadoc里面推荐的方法是在外部通过某种方法把暂停和恢复的要求通知给线程对象,比如用public属性,然后由线程的执行体自己隔一段时间进行一次自主判断,如果需要暂停就用wait或者sleep或者某些其他的方法暂停,而恢复运行的话根据暂停的方法不同有不同的选择,比如用wait暂停可以用notify恢复运行,用sleep则等待时间到,或者可以用interrupt恢复。
2、而yield的话我觉得可能不能达到目的,首先yield本身也是必须由线程执行体自主执行,而不是线程外部执行的,然后yield照我的理解是让线程暂时离开运行状态但并不阻塞,而是进入就绪状态等待下一次调度,所以并不能保证线程暂停,当然yield本身执行之后因为没有阻塞所以并不需要显式的恢复。
3、如果你的线程执行体里面是循环的话,好写一些,只要每次循环的时候检测暂停或者恢复的外部要求就行了,不过如果是顺序执行,可能只有每隔一段就插入一次检测了。
4、当然也可以找找Thread类之外的方法。
本文到此讲解完毕了,希望对大家有帮助。