作者简介: zoro-1,目前大二,正在学习Java,数据结构,mysql,数据结构,javaee等
作者主页: zoro-1的主页
欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖
Thread的基础用法
属性
ID
jvm自动分配的身份标识,不重复
名称
当前线程的名字,可以通过Thread的构造方法设置,可以重复
状态
• NEW:安排了⼯作,还未开始⾏动
• RUNNABLE:可⼯作的.⼜可以分成正在⼯作中和即将开始⼯作.
• BLOCKED:这⼏个都表⽰排队等着其他事情(锁竞争引起)
• WAITING:这⼏个都表⽰排队等着其他事情(”死等“,以及wait引起)
• TIMED_WAITING:这⼏个都表⽰排队等着其他事情(sleep,超时join引起)
• TERMINATED:⼯作完成了.
优先级
在操作系统中,线程有不同的优先级来控制它们的调度。优先级定义了线程在争夺CPU时间时的优先级顺序。通常,操作系统会按照优先级最高的线程先执行,然后是优先级次高的线程,以此类推,直到所有线程都执行完毕或者被暂停。
是否是后台进程
后台进程
不会阻止进程的结束
前台进程
会组止进程的结束
需要在调用start方法前调用setDaemon()方法设置是否为后台进程,
手动创建的线程都是前台进程
是否存活
JAVA代码中定义的线程对象的生命周期与内核中的pcb生命周期是不一样的
下面我们用一个代码演示一下
public class ThreadText3 {
public static void main(String[] args) throws InterruptedException {
Thread thread=new Thread(()->{
System.out.println("这个线程正在运行");
});
System.out.println(thread.isAlive());
thread.start();
System.out.println(thread.isAlive());
thread.join();
System.out.