当前位置: 首页 > wzjs >正文

基于dw的动物网站设计论文山西大同网站建设

基于dw的动物网站设计论文,山西大同网站建设,个人网页设计作品模板学生,为什么我的网站备案通过还是显示未备案目录 前言1. NEW2. TERMINATED3. RUNNABLE4. 三种阻塞状态总结 前言 本篇文章来讲解线程的几种状态。在Java中,线程的状态是一个枚举类型,Thread.State。其中一共分为了六个状态。分别为:NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING, TERMI…

目录

  • 前言
  • 1. NEW
  • 2. TERMINATED
  • 3. RUNNABLE
  • 4. 三种阻塞状态
  • 总结

前言

本篇文章来讲解线程的几种状态。在Java中,线程的状态是一个枚举类型,Thread.State。其中一共分为了六个状态。分别为:NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,
TERMINATED

1. NEW

new:安排了⼯作, 还未开始⾏动
new状态表示Thread对象已经创建,但是并没有执行Start()语句

public class Demo13 {public static void main(String[] args) {//观看线程的NEW状态Thread t = new Thread(() -> {});System.out.println(t.getState());t.start();}
}

在这里插入图片描述

2. TERMINATED

terminated:⼯作完成了.
就是表示线程结束的状态

public class Demo13 {public static void main(String[] args) throws InterruptedException {//观看线程的NEW状态Thread t = new Thread(() -> {});System.out.println(t.getState());t.start();t.join();System.out.println(t.getState());}
}

在这里插入图片描述

3. RUNNABLE

runnable:可⼯作的. ⼜可以分成正在⼯作中和即将开始⼯作.
runnable即就绪状态

public class Demo13 {public static void main(String[] args) throws InterruptedException {//观看线程的NEW状态Thread t = new Thread(() -> {while (true) {//什么也不做}});System.out.println(t.getState());t.start();System.out.println(t.getState());t.join();System.out.println(t.getState());}
}

在这里插入图片描述
由于内部是while死循环,main一直在等待t线程,故不会结束。

4. 三种阻塞状态

BLOCKED,WAITING,TIMED_WAITING 都表示排队等着其他事情,也就是都表示阻塞状态。但是还是有区别的,BLOCKED表示由于加锁产生的阻塞,WAITING表示无超时时间的阻塞,TIMED_WAITING表示有超时时间的阻塞。也就是说使用join()进行等待就是WAITING,使用join(time)或者使用sleep()进行等待就是 TIMED_WAITING。
下面观察WAITING和TIMED_WAITING状态。
使用一个监视器线程来观察main的状态

public class Demo13 {public static void main(String[] args) throws InterruptedException {//获取mainThread mainThread = Thread.currentThread();//观看线程的NEW状态Thread t = new Thread(() -> {while (true) {try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}});System.out.println(t.getState());t.start();System.out.println(t.getState());//观察使用一个监视器线程来观察main线程的状态Thread monitor = new Thread(()-> {try {Thread.sleep(1000);System.out.println(mainThread.getState());} catch (InterruptedException e) {e.printStackTrace();}});System.out.println("main等待前的状态:" + mainThread.getState());monitor.start();System.out.println("main线程开始等待");t.join();System.out.println(t.getState());}

在这里插入图片描述
观察TIMED_WAITING状态只需将最下面的join加入参数:

public class Demo13 {public static void main(String[] args) throws InterruptedException {//获取mainThread mainThread = Thread.currentThread();//观看线程的NEW状态Thread t = new Thread(() -> {while (true) {try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}});System.out.println(t.getState());t.start();System.out.println(t.getState());//观察使用一个监视器线程来观察main线程的状态Thread monitor = new Thread(()-> {try {Thread.sleep(1000);System.out.println(mainThread.getState());} catch (InterruptedException e) {e.printStackTrace();}});System.out.println("main等待前的状态:" + mainThread.getState());monitor.start();System.out.println("main线程开始等待");t.join(5000);System.out.println(t.getState());}
}

在这里插入图片描述
BLOCKED状态需要对线程进行加锁,加锁操作将在后面的文章中讲到,故在此处不演示BLOCKED状态。

总结

本文章介绍了java线程中的六个状态,在实际工作中调试中就可能需要打印线程状态,来查找程序中的错误。

http://www.dtcms.com/wzjs/540161.html

相关文章:

  • 广州上市网站建设的公司支付网站开发费分录
  • 廊坊专业网站建设做网站推广的工作好吗
  • 网站到首页排名简单的网页设计主题
  • 东莞做网站哪家好wordpress西部
  • 长沙在线建站模板wordpress主页模板
  • 天津网站建设包括哪些中国工程项目网站
  • 开发公司宣传册如何给网站做关键词优化
  • 东莞建设工程交易中心门户网站山东一建建设有限公司网站
  • 帮客户做网站太仓手机网站建设价格
  • 强生网站还要怎样做如何实现网站开发
  • 网站制作建设公司网站内容编辑
  • 网站开发与设计是什么茄子直播
  • 网站推广服务网站连锁网上发布信息的网站怎么做
  • 网站上的用户注册怎么做的做系统后之前网站怎么找回
  • 网站建设 软件开发的公司深圳防疫最新政策
  • html5单页网站模板外包和劳务派遣哪个更好
  • 免费网站程序下载网站导航怎么做外链
  • wordpress模板的网站_网页字体怎么修改?重庆网站建设的意义
  • 临清市住房和城乡建设局网站湛江免费建站公司
  • 做公司网站需要的资料英文网站建设的原因
  • 重庆市公共资源交易中心网官网seo查询是什么意思
  • 网上装修公司网站策划书总裁培训班
  • 额尔古纳做网站广西网站制作
  • wordpress谷歌云网站seo排名优化工具
  • 建设小型网站系统开题报告做网站虚拟主机配置
  • 建设工程安全事故在哪个网站查图片生成链接在线工具
  • 自己的网站怎么创建网站建设交印花税嘛
  • 昆明网站建设公司猎狐科技怎么样宿州房地产网站建设
  • 搭建网站需要哪些东西wordpress+插件+h5
  • seo查询 站长工具市场营销策略有哪4种