Java多线程之线程状态总结
概述
线程大家肯定不陌生,对于线程中的运行状态,自己经常搞混淆,这边按照下图记录下:

线程一般来说有如下几种状态:
新建,可运行,超时阻塞,等待阻塞,同步阻塞,死亡
yeild:当线程执行了yield()方法后,将转到就绪状态,yield()方法只会给相同优先级或者更高优先级的线程一个运行的机会,与其他进程处于同等竞争状态,OS有可能会接着又让这个进程进入运行状态,yield()方法没有声明抛出任何异常
sleep:sleep()方法会给其他线程运行的机会,而不考虑其他线程的优先级,因此会给较低线程一个运行的机会,sleep()方法声明抛出InterruptedException异常,sleep方法并不会释放占用的资源。
join:阻塞当前线程,等待其他线程执行完毕,不会释放占用的资源
wait:调用wait 方法后,它就进入到一个和该对象相关的等待池中,同时失去了对象的锁,只有notify能够唤醒,等待获取锁,继续执行。
Java多线程之线程状态总结的更多相关文章
- 【Java多线程】线程状态、线程池状态
线程状态: 线程共包括以下5种状态.1. 新建状态(New) 线程对象被创建后,就进入了新建状态.例如,Thread thread = new Thread().2. 就绪状态(Runnable) 也 ...
- Java多线程及线程状态转换
以下内容整理自:http://blog.csdn.net/wtyvhreal/article/details/44176369 线程:是指进程中的一个执行流程. 线程与进程的区别:每个进程都需要操作 ...
- Java多线程之线程状态转换图
说明:线程共包括以下5种状态.1. 新建状态(New) : 线程对象被创建后,就进入了新建状态.例如,Thread thread = new Thread().2. 就绪状态(Runn ...
- Java多线程之线程的状态迁移
Java多线程之线程的状态迁移 下图整理了线程的状态迁移.图中的线程状态(Thread.Stat 中定义的Enum 名)NEW.RUNNABLE .TERMINATED.WAITING.TIMED_W ...
- [译]线程生命周期-理解Java中的线程状态
线程生命周期-理解Java中的线程状态 在多线程编程环境下,理解线程生命周期和线程状态非常重要. 在上一篇教程中,我们已经学习了如何创建java线程:实现Runnable接口或者成为Thread的子类 ...
- Java多线程之线程其他类
Java多线程之线程其他类 实际编码中除了前面讲到的常用的类之外,还有几个其他类也有可能用得到,这里来统一整理一下: 1,Callable接口和Future接口 JDK1.5以后提供了上面这2个接口, ...
- Java多线程之线程的通信
Java多线程之线程的通信 在总结多线程通信前先介绍一个概念:锁池.线程因为未拿到锁标记而发生的阻塞不同于前面五个基本状态中的阻塞,称为锁池.每个对象都有自己的锁池的空间,用于放置等待运行的线程.这些 ...
- Java多线程之线程的控制
Java多线程之线程的控制 线程中的7 种非常重要的状态: 初始New.可运行Runnable.运行Running.阻塞Blocked.锁池lock_pool.等待队列wait_pool.结束Dea ...
- Java多线程02(线程安全、线程同步、等待唤醒机制)
Java多线程2(线程安全.线程同步.等待唤醒机制.单例设计模式) 1.线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运行结果和单线程运行的结果是一样的,而且其他的变量 ...
随机推荐
- VS2010下安装boost库
在我们的C++项目中安装boost库,下面以VS2010版本作为例子,其它版本的设置也差不多. 一.编译生成boost库 1.下载最新的boost(本人下载的是boost_1_56_0).boost官 ...
- Elasticsearch .net client NEST使用说明 2.x -更新版
Elasticsearch .net client NEST使用说明 目录: Elasticsearch .net client NEST 5.x 使用总结 elasticsearch_.net_cl ...
- 详解ASP.NET Core API 的Get和Post请求使用方式
上一篇文章帮助大家解决问题不彻底导致博友使用的时候还是遇到一些问题,欢迎一起讨论.所以下面重点详细讲解我们常用的Get和Post请求( 以.net core2.2的Http[Verb]为方向 ,推荐该 ...
- 剑指offer 07:斐波那契数列
题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0).(n<=39) 法一: public class Solution { publi ...
- gitlab-runner部署
Gitlab在线安装部署参考 一. 环境 系统 版本 备注 Centos 7_64 建议使用4GB RAM和4或8个CPU内核 二. 安装并配置必要的依赖项 a) 在centos ...
- Python方法和属性的动态绑定 --面向对象
需要了解的: __ slots __:属于魔术变量,即:系统实现某些特定功能的变量 __ slots __: 1.限定类实例能添加的属性 2.对当前类起作用,对继承的子类是不起作用的 实操: # co ...
- GlusterFS分布式文件系统的使用
glusterfs是一款开源的分布式文件系统. 它具备高扩展.高可用及高性能等特性,由于其无元数据服务器的设计,使其真正实现了线性的扩展能力,使存储总容量可轻松达到PB级别,支持数千客户端并发访问. ...
- 解决Git Revert操作后再次Merge代码被冲掉的问题
转:https://blog.csdn.net/paul_wei2008/article/details/77477932 https://blog.csdn.net/cxn945/article/d ...
- 手机上 input submit ios和andirod样式不统一
-webkit-appearance:none;
- windows系统下安装rabbitmq教程
1.简介 安装rabbitmq需要下载软件Erlang语言开发包和RabbitMQ文件包.文件最新下载地址如下: Erlang: https://www.erlang.org/ RabbitMQ: h ...