多线程的生命周期(图解)
多线程的常用的方法
案例
public static void main(String[] args) {
当前程序中具备2条线程main线程 gc线程
需求:开辟一条自定义线程
创建自定义线程
Thread_01 t1 = new Thread_01();
t1.start();//开启线程
多线程的生命周期
1.新建状态
当线程被实例化时 MyThread mt = new MyThread();
2.可运行状态(就绪状态)
mt.start(); 没有立刻被运行,只是拥有了运行的资格,等待抢占CPU的资源。
3.运行状态
多条线程再可运行状态时,其中某条被选中,直接达到运行状态
4.阻塞状态,等待队列,锁池状态
该线程调用了一些特定的方法让线程实现某些需求
Thread.sleep();
5.死亡状态
run方法,main,stop(不推荐)
多条线程做同样的事情 使用Runnable 反之使用Thread
System.out.println("自定义线程: "+Thread.currentThread().getName());
}
/*
* 1.多任务/程序/进程/线程/多线程
*
* 2.多线程的实现方式
* (1)继承Thread类
*
* (2)实现Runnable接口
*
* 重写run方法 ,将所有的流程代码放入此内,才能通过线程去控制运行
/*
多线程的方法:
setPriority|getPriority---设置和获取线程的优先级
Thread.sleep(long millis)---线程睡眠
wait---线程等待
线程礼让yield
yield---线程让步(让当前抢到cpu的线程退出cup重新进行等待队列)
join---线程加入(加入更紧急的线程,让当前线程暂时阻塞)
notify|notifyAll--唤醒线程