isAlive测试线程是否活动。 所谓活动状态,是指线程已经启动且尚未终止。
sleep表示暂停执行,但是线程还是活着的,即isAlive还是true。
getId获取线程唯一标识。
停止线程是比较重要的,有始有终。
这里面说明一下,停止线程,不可以用stop,这个方法是不推荐使用的,如同suspend和resume一样,都是作废的方法,使用它们可能产生不可预知的结果。
目前停止线程的方法有:
1、使用退出标志,在run方法完成后线程终止。推荐使用改种方法。
2、使用stop,不推荐,应该不用。
3、使用interrupt。该方法并不是立即停止,而是在线程中类似标志。
判断线程是否为停止状态:
1、interrupted(),表示当前线程是否中断。若返回true,表示中断,则将中断标志清零(即设置为false)
2、isInterrupted(),表示线程是否中断。若返回true,表示中断,且不会清空中断标志。
两者的区别在于,前者无论是哪个对象调用,即x.interrupted(),都表示调用该方法语句所在的线程是否中断。而后者x.isInterrupted(),表示x对象是否已经中断。
时间: 2024-12-25 14:26:17