LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

Java面试题:线程的运行状态(2)

2022年12月18日 108点热度

目录

一、查看线程的运行状态

题目

线程有以下6种状态:新建、运行、阻塞、等待、计时等待和终止。

new新线程时,线程处于新建 状态。

调用start()方法时,线程处于运行状态。

当线程需要获得对象的内置锁linux 判断线程是否在运行,而该锁正被其他线程拥有,线程处于阻塞状态。

线程等待其他线程通知调度表可以运行时,该线程处于等待状态。

对于一些含有时间参数的方法linux 判断线程是否在运行linux视频,如 Thread 类的 sleep()方法,可以使线程处于计时等待状态。

当run()方法运行完毕或出现异常时,线程处于终止状态。

实现:查看线程的运行状态。

二、解题思路

创建一个类:ThreadState,实现Runnable接口

定义3个方法:

使用Thread类的getState()方法linux deepin,可以获得线程的状态。

该方法的返回值是Tread.State

三、代码详解

package com.xiaoxuzhu;
/**
 * Description: 
 *
 * @author xiaoxuzhu
 * @version 1.0
 *
 * 
 * 修改记录:
 * 修改后版本	        修改人		修改日期			修改内容
 * 2022/5/10.1	    xiaoxuzhu		2022/5/10		    Create
 * 

* @date 2022/5/10 */public class ThreadState implements Runnable {public synchronized void waitForASecond() throws InterruptedException {wait(500); // 使当前线程等待0.5秒或其他线程调用notify()或notifyAll()方法}public synchronized void waitForYears() throws InterruptedException {wait(); // 使当前线程永久等待,直到其他线程调用notify()或notifyAll()方法}public synchronized void notifyNow() throws InterruptedException {notify(); // 唤醒由调用wait()方法进入等待状态的线程Thread.sleep(100);//留时间打印}public void run() {try {waitForASecond(); // 在新线程中运行waitForASecond()方法waitForYears(); // 在新线程中运行waitForYears()方法} catch (InterruptedException e) {e.printStackTrace();}}}

测试类:

mfc判断线程是否在运行_判断线程是否运行_linux 判断线程是否在运行

package com.xiaoxuzhu;
/**
 * Description:
 *
 * @author xiaoxuzhu
 * @version 1.0
 *
 * 
 * 修改记录:
 * 修改后版本	        修改人		修改日期			修改内容
 * 2022/5/10.1	    xiaoxuzhu		2022/5/10		    Create
 * 

* @date 2022/5/10 */public class Test {public static void main(String[] args) throws InterruptedException {ThreadState state = new ThreadState();// 创建State对象Thread thread = new Thread(state);// 利用State对象创建Thread对象System.out.println("新建线程:" + thread.getState());// 输出线程状态thread.start(); // 调用thread对象的start()方法,启动新线程System.out.println("启动线程:" + thread.getState());// 输出线程状态Thread.sleep(100); // 当前线程休眠0.1秒,使新线程运行waitForASecond()方法System.out.println("计时等待:" + thread.getState());// 输出线程状态Thread.sleep(1000); // 当前线程休眠1秒,使新线程运行waitForYears()方法System.out.println("等待线程:" + thread.getState());// 输出线程状态state.notifyNow(); // 调用state的notifyNow()方法System.out.println("唤醒线程:" + thread.getState());// 输出线程状态Thread.sleep(1000); // 当前线程休眠1秒,使新线程结束System.out.println("终止线程:" + thread.getState());// 输出线程状态}}

mfc判断线程是否在运行_linux 判断线程是否在运行_判断线程是否运行

到此这篇关于Java查看线程运行状态的方法详解的文章就介绍到这了,更多相关Java线程运行状态内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 线程阻塞
最后更新:2022年12月18日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
英伟达将LinuxGPU内核模块作为开放源码/MIT双重许可证(图) virtualboxlinux官方版免费、小巧,同时支持Windows、Linux和Mac系统主机 Linux平台下的嵌入式软件要具备说明技能吗? 图解linuxlinux内核结构框图对内核框图有个总体的把握 linux虚拟机的安装步骤是什么?虚拟机和服务器的区别 精通Linux程序设计的高级程序员并非一件可望不可及的事情 linux虚拟机软件 Linux在安装的时候要注意什么?Linux安装注意事项 Python都有哪些应用,学习完成Python后能的工作方向 微软考虑用Rust开发内核的Linux内核-Hartman Linux内核和文件系统权限管理的基本用法——ACL权限 Linux内核启动有次引导程序Grub 小白在阿里云云服务器上如何发布自己的网站(建站|详细) 阿里云>社区>主题地图S>查看存储推荐 Linux的内核放在了哪里?/boot的启动目录一览 Linux中修改文件权限的命令、创建者所在组、所有人 linux到底难不难学呢?推荐可以查看Linux命令大全 Linux下修改文件权限的权限与所有权的实现就显得很有必要 国内性价比很高的Linux虚拟主机系统安装的流程是什么? 1.Linux磁盘分区和目录Linux发行版本之间的差别很少? 基于命令修改文件的权限命令-ld
Linux5.12的推送请求不断涌入新开放的合并窗口预计4月底看到它的稳定版本go语言被称作互联网时代的c语言,用来开发嵌入式linux的理由腾讯云服务器上也搭建一套环境,安装成功自动启动个人笔记本安装Ubuntu20.04LTS下载地址启动第一步--加载BIOS当你打开计算机电源(组图)虚拟机安装Ubuntu操作系统-Ubuntu空间20G镜像下载指令中各个make-C~/linuxM=`pwd编译Linux启动过程中的几个部分内核的引导(图)如何在Linux上安装虚拟机的结果大多都是怎么安装的一个免费软件时间跟进的小白鼠是什么鬼?专题计算机是如何启动的?、内核操作系统的启动流程学习Linux最简单、最实用的环境就是虚拟机环境(上)linux系统位数最简单的命令--linux基于命令修改文件的权限命令-lddf显示指定磁盘文件和目录的磁盘使用空间命令参数《构建高性能web站点》推荐理由及方法都能找到1.Linux磁盘分区和目录Linux发行版本之间的差别很少?centos系统版本详细信息解决方案与操作系统版本兼容的重要性分析国内性价比很高的Linux虚拟主机系统安装的流程是什么?Linux下修改文件权限的权限与所有权的实现就显得很有必要
Windows环境中远程连接Linux服务器_轻量 Intel(R)CPUE5410@2.33GHz看到有8个逻辑 华为手机刷机软件V1.2.5官方版软件说明软件介绍 Linux系统服务器的搭建方法-上海怡健医学 Linux用户与文件权限操作实例第1页/共15页任务要求 Linux游戏起源于最受欢迎的游戏平台:SteamOS介绍 安装xrdp及vnc4server的自动补全配置完成6、查看IP 学习Linux最简单、最实用的环境就是虚拟机环境(上) 如何查看Linux操作系统版本_谦杯的博客_51CTO博客 Linux下查看版本号的命令转(组图) virtualboxlinux官方版免费、小巧,同时支持Windows、Linux和Mac系统主机 Linux总结出来的11个炫酷的Linux终端命令大全! Linux中修改文件权限的命令、创建者所在组、所有人 Linux系统用户账号管理有什么区别呢?【豹子融】 嵌入式Linux软件设计系统设计的一般流程是什么?(图) 苹果MacOSX系统刷新DNS的方法,你知道吗? 1.Linux磁盘分区和目录Linux发行版本之间的差别很少? 一个免费软件时间跟进的小白鼠是什么鬼?专题 CentOS8虚拟机的网络设置对话框的解决方法和解决办法 文件传输协议:文件传输的话控制端口21数据端口:20
标签聚合
shell linux系统 sudo 虚拟机 linux服务器 命令模式 软件 unix 文件目录 电脑
书籍
课程
技术群
技术干货大合集↓
  • 2023年2月 / 1篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.