线程的生命周期状态
1.Thread的构造器
Thread类的所有构造器最后都指向int方法
示例1:
public Thread() { init(null, null, "Thread-" + nextThreadNum(), 0); } 示例2: public Thread(Runnable target) { init(null, target, "Thread-" + nextThreadNum(), 0); }init方法:
private void init(ThreadGroup g, Runnable target, String name, long stackSize, AccessControlContext acc, boolean inheritThreadLocals)
常用参数:
group:线程的分组 一般用默认
target:线程主要的执行体也就是run方法 最主要的参数
name:线程名字 一般用默认
线程创建后就处于新建状态
2.Thread的常用方法
start()启动方法
run()主要的方法体,运行的逻辑体
sleep() 线程休眠一定时间
wait():线程暂停;
notify():其他线程调起唤醒暂停的线程
notifyAll():唤醒所有等待的线程
yield():暂停当前正在执行的线程,并执行其他线程
示例:
package com.example.springbootdamo.Thread;
/**
* @ClassName Test
* @Description TODO
* @Author 22768
* @Date 2024/4/6 14:09
*/
public class Test {
public static void main(String[] args) {
ThreadTest threadTest = new ThreadTest();
ThreadTest threadTest1 = new ThreadTest();
ThreadTest threadTest2 = new ThreadTest();
ThreadTest threadTest3 = new ThreadTest();
threadTest.start();
threadTest1.start();
threadTest2.start();
try {
threadTest.sleep(1000);
threadTest1.sleep(1000);
threadTest2.sleep(1000);
synchronized (threadTest){threadTest.wait();}
synchronized (threadTest1){threadTest1.wait();}
synchronized (threadTest2){threadTest2.wait();}
threadTest.notify();
threadTest1.notifyAll();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}