继承Thread类并重写run方法(假定为MyThread类)
实现Runnable接口并实现run方法(假定为MyRun类)
new MyThread().start(); //注意:调用的是start方法而不是run方法,如果直接调用run方法则只是简单的方法调用,依旧是单线程,而不是多线程
new Thread(new MyRun()).start;
Executors.newCachedThreadPool().submit(() -> System.out.println("线程池方式")); //该处使用线程池结合Lambda方式新建并启动线程
sleep:当前线程暂停一段时间,将CPU资源让给其他线程使用,但是不会释放已经获得的对象资源
yield:将当前线程放入到就绪队列中,不过CPU下一次从就绪队列中获取线程时,依然有可能把刚调用yield方法的线程从就绪队列中取出执行
join:在当前线程调用其他线程的join方法,相当于在这个位置等待另一个线程执行完毕后再往下执行,会让出CPU资源,线程间嵌套调用join方法可以保证线程之间的完成顺序
NEW:使用new关键字创建了线程,但是未调用start方法时的状态
RUNNABLE:被线程调度器执行时的状态,内部还存在有READY和RUNNING两个子状态,其中处于就绪队列的所有线程的状态都是READY
TIME_WAITING:等待指定时长的睡眠状态,指定时间后会被唤醒进入到就绪队列中
WAITING:睡眠状态
BLOCKED:线程未获得锁时所处的阻塞状态
TERMINATED:结果状态
如果对你有帮助,点个赞,或者打个赏吧,嘿嘿
整理不易,请尊重博主的劳动成果
原文:https://www.cnblogs.com/Mango-Tree/p/12827777.html