线程的六种状态

New:初始状态 (未调用start )刚刚创建完

Runnable:运行状态 执行start

Blocked:阻塞状态  

Waiting:等待状态 通过Join sleep等方法使线程在等待

Timed Waiting :计时等待状态   sleep join 等方法设置了参数

Terminated:终止状态,线程执行完毕

package org.example.test1;
public class StateThread {
public static void test1(){//NEW
Thread t1 = new Thread(()->{
System.out.println("Thread1");
});
System.out.println(t1.getState());
}
public static void test2() throws InterruptedException {//Terminated
Thread t1 = new Thread(()->{
System.out.println("线程开始执行");
System.out.println("线程结束执行");
});
t1.start();
Thread.sleep(3000);
System.out.println(t1.getState());
}
public static void test3(){//Runnable
Thread t1 = new Thread(()->{
});
t1.start();
System.out.println(t1.getState());
}
public static void test4() throws InterruptedException {//Blocked
class Table{
public synchronized void use(){
System.out.println(Thread.currentThread().getName()+"-使用桌子");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
System.out.println(Thread.currentThread().getName()+"-使用完毕");
}
}
System.out.println(Thread.currentThread().getName());
Table table = new Table();
Thread student1 = new Thread(()->{
table.use();
},"s1");
Thread student2 = new Thread(()->{
table.use();
},"s2");
student1.start();
Thread.sleep(1000);
student2.start();
Thread.sleep(1000);
System.out.println(student2.getState());
}
public static void test5() throws InterruptedException {//Waiting
class Table{
public synchronized void use() throws InterruptedException {
System.out.println(Thread.currentThread().getName()+"-使用桌子");
System.out.println("忘记点餐了");
wait();
System.out.println(Thread.currentThread().getName()+"-使用完毕");
}
}
Table table = new Table();
Thread student1 = new Thread(()->{
try {
table.use();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
},"s1");
student1.start();
Thread.sleep(100);
System.out.println(student1.getState());
}
public static void test6() throws InterruptedException {//Timed_Waiting
class Table{
public synchronized void use() throws InterruptedException {
System.out.println(Thread.currentThread().getName()+"-使用桌子");
System.out.println("忘记点餐了");
wait(3000);
System.out.println(Thread.currentThread().getName()+"-使用完毕");
}
}
Table table = new Table();
Thread student1 = new Thread(()->{
try {
table.use();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
},"s1");
student1.start();
Thread.sleep(100);
System.out.println(student1.getState());
}
public static void main(String[] args) throws InterruptedException {
//test1();
//test2();
//test3();
//test4();
//test5();
test6();
}
}
posted @   会秃头的小白  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
  1. 1 原来你也在这里 周笔畅
  2. 2 世间美好与你环环相扣 柏松
  3. 3 起风了 吴青峰
  4. 4 极恶都市 夏日入侵企划
世间美好与你环环相扣 - 柏松
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 尹初七

作曲 : 柏松

编曲 : 彭圣杰

偏偏秉烛夜游

偏偏秉烛夜游

午夜星辰 似奔走之友

爱你每个结痂伤口

酿成的陈年烈酒

入喉尚算可口

入喉尚算可口

怎么泪水 还偶尔失守

邀你细看心中缺口

裂缝中留存 温柔

此时已莺飞草长 爱的人正在路上

此时已莺飞草长 爱的人正在路上

我知他风雨兼程 途经日暮不赏

穿越人海 只为与你相拥

此刻已皓月当空 爱的人手捧星光

我知他乘风破浪 去了黑暗一趟

感同身受 给你救赎热望

知道你不能 还要你感受

知道你不能 还要你感受

让星光加了一点彩虹

让樱花偷偷 吻你额头

让世间美好 与你环环相扣

此时已莺飞草长 爱的人正在路上

此时已莺飞草长 爱的人正在路上

我知他风雨兼程 途经日暮不赏

穿越人海 只为与你相拥

此刻已皓月当空 爱的人手捧星光

我知他乘风破浪 去了黑暗一趟

感同身受 给你救赎热望

此时已莺飞草长 爱的人正在路上

此时已莺飞草长 爱的人正在路上

我知他风雨兼程 途经日暮不赏

穿越人海 只为与你相拥

此刻已皓月当空 爱的人手捧星光

我知他乘风破浪 去了黑暗一趟

感同身受 给你救赎热望

知道你不能 还要你感受

知道你不能 还要你感受

让星光加了一点彩虹

当樱花开的纷纷扬扬

当世间美好 与你环环相扣

特别鸣谢:槿葵,我们的海报制作妹妹。

原唱:柏松

吉他:柏松

和声:柏松

录音:柏松

混音:张强

点击右上角即可分享
微信分享提示