• 线程1、创建线程方式一:(不建议使用:避免oop单继承的局限性)继承Thread类,重写run方法,调用start开启线程总结 ⚠️线程开启不一定立即执行,又CPU调低执行调用run() 先执行run()在执行main()调用start() run()和main()并行交替执行2、创建线程方式二:(推荐使用:避免单继承的局限性,灵活方便,方便同一个对象被多个线程使用)实现Runnable接口,重写run方法,执行线程需要丢入Runnable接口实现类,调用start方法