JAVA学习-并发.线程状态

一、Java中的线程状态可以分为以下五类:

1. 新建(New)状态:

当我们创建一个Thread对象时,它的状态是新建状态,表示该线程对象已被创建但还没有启动执行。

2. 运行(Runnable)状态:

当我们调用Thread对象的start()方法时,该线程进入运行状态。处于这个状态的线程可能正在执行,也可能正在等待CPU分配时间片。

3. 阻塞(Blocked)状态:

当一个线程被阻塞时,它进入阻塞状态。在阻塞状态中,线程不会占用CPU时间,直到一些特定的条件满足时,如等待I/O操作完成、等待获取锁等,线程才会进入就绪状态。

4. 休眠(Waiting)状态:

当一个线程被调用wait()、join()或park()等方法时,它进入休眠状态。在这个状态中,线程不占用CPU时间,直到被唤醒。

5. 终止(Terminated)状态:

当线程完成了它的任务或者因为一个异常而结束时,它进入终止状态。

二、Java提供了一些方法来操作线程状态。如下:

1. Thread.sleep(long millis)方法:

线程休眠指定的毫秒数。

2. Object.wait()方法:

线程等待,直到另一个线程调用notify()或notifyAll()方法来唤醒它。

3. Thread.join()方法:

等待指定线程结束。

4. Thread.interrupt()方法:

中断线程。

下面是一个简单的Java程序,展示了如何使用线程状态:

public class ThreadStateDemo {public static void main(String[] args) throws InterruptedException {Thread thread = new Thread(() -> {try {Thread.sleep(5000);} catch (InterruptedException e) {System.out.println("线程被中断了!");}});System.out.println("创建线程,状态为:" + thread.getState());thread.start();System.out.println("启动线程,状态为:" + thread.getState());Thread.sleep(1000);System.out.println("等待1秒,状态为:" + thread.getState());thread.interrupt();System.out.println("中断线程,状态为:" + thread.getState());Thread.sleep(1000);System.out.println("等待1秒,状态为:" + thread.getState());}
}

        该程序创建一个线程,让它休眠5秒钟,然后中断该线程。程序输出每个时间点的线程状态。运行该程序,可以看到线程的状态随着时间的推移而变化。

(文章为作者在学习java过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/4.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

❤ vue 使用原生组件

❤ vue 使用原生组件 1、input输入框 ① 想让我们的input输入框类型为时间&#xff0c;只需要为我们的输入框简单的加一个类型的type即可 <input type"date" id"birthday" name"birthday" placeholder"年/月/日"> 我们还可以…

Ubuntu 传输文件

scp [选项] 源文件 目标路径 以下是一些常用的 scp 命令选项&#xff1a; -r&#xff1a;递归复制目录和子目录。 -P&#xff1a;指定远程 SSH 服务器的端口号。 -i&#xff1a;指定用于身份验证的私钥文件。 -p&#xff1a;保留源文件的时间戳、权限和所有者。 -v&#x…

element-ui合计逻辑踩坑

element-ui合计逻辑踩坑 1.快速实现一个合计 ​ Element UI所提供的el-table中提供了方便快捷的合计逻辑实现&#xff1a; ​ https://element.eleme.cn/#/zh-CN/component/table ​ 此实现方法在官方文档中介绍详细&#xff0c;此处不多赘述。 ​ 这里需要注意&#xff0c…