多线程
一、线程控制及生命周期
1.线程控制方法介绍
1)static void sleep(long millis):使当前正在执行的线程暂停执行指定的毫秒数
2)void join():等待这个线程死亡
3)void setDaemon(boolean on):将此线程标记为守护线程,当运行时的线程都是守护线程时,Java虚拟机将退出
2.线程生命周期
注意:当被其他线程抢走CPU的执行权的时候,线程回到就绪的状态;当调用sleep()或者其他阻塞式方法的时候,等sleep方法或者阻塞方法结束时才回到就绪状态。
二、多线程的实现方式
1.步骤
- 定义一个MyRunnable类实现Runnable接口
- 在MyRunnable类中重写run()方法
- 创建MyRunnable类的对象
- 创建Thread类的对象,把MyRunnable类对象作为构造方法的参数
- 启动线程
2.实现Runnable接口的好处
- 避免了Java单继承的局限性
- 适合多个相同程序的代码去处理同一个资源的情况,把线程和程序的代码、数据有效分离,较好的体现了面向对象的设计思想