1.创建一个实现了Runnable接口的类
2.实现类去实现Runnable中的抽象方法:run()
3.创建实现类的对象
4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象
通过Thead类的对象调用start方法
比较创建线程的两种方式:
开发中:优先选择实现Runnable接口的方式
1.实现的方式没有类的单继承性的局限性
2.实现的方式更适合处理多个线程有共享数据的情况
联系:public class Thread implements Runnable
相同点:两种方式都需要重写run(),将线程要执行的逻辑声明在run()中
线程的生命周期
新建: 当一个Thread类或其子类的对象呗声明创建时,新生的线程对象处于新建状态
就绪:处于新建状态的线程被start()后,将进入线程队列等待CPU时间片,此时它已经具备了运行的条件,只是没分配CPU资源
运行:当就绪的线程被调度并获得CPU资源时,便进入运行状态,run()方法定义了线程的操作和功能
阻塞:某种特殊情况下,被人为挂起或执行输入输出操作时,让出CPU并临时中止自己的执行,进入阻塞状态
死亡:线程完成了它的全部工作或线程被提前强制性地中止或出现异常导致结束
就绪到运行:获取CPU执行权,反向则是失去执行权 或yield()
阻塞:sleep() join()等待同步锁 wait()
原文地址:https://www.cnblogs.com/ergePython/p/11885691.html
时间: 2024-10-08 11:23:08