第一章 多线程技能
1.2 使用多线程
- 继承Thread类,重写run()方法。
- 实现Runnable接口,实现run()方法。
1.3 currentThread()
- currentThread()方法可返回代码块正在被哪个线程所调用。Thread.currentThread().getName()。
1.4 isAlive()
- 方法isAlive()的作用是测试线程是否处于活动状态。活动状态是指线程正处于运行或准备开始运行的状态。thread.isAlive()。
1.5 sleep()
- 方法sleep()的作用是在指定的毫秒数内让当前“正在执行的线程”休眠(暂停执行)。这个“正在执行的线程”是指this.currentThread()返回的线程。
1.6 getId()
- getId()方法的作用是获取线程的唯一标识。
1.7 停止线程
在java中,有以下3种方法可以终止正在运行的线程:
- 使用退出标志,使线程正常退出,也就是当run()方法完成后线程终止。
- 使用stop()方法强行终止线程,但是不推荐,因为stop()和suspend()及resume()一样,都是过期作废的方法,使用他们可能产生不可预料的结果。
- 使用interrupt()方法终端线程。调用interrupt()方法仅仅是给当前线程打了一个停止的标记,线程并不会立刻停止。
1.7.2 判断线程是否是停止状态
- this.interrupted():测试当前线程是否已经是中断状态,执行后具有将标志状态置为false的功能。
- this.isInterrupted():测试线程Thread对象是否已经是中断状态,但不清除状态标识。