线程状态与属性

6种状态

New(新创建)

Runnable(可运行)

Blocked(被阻塞)

Waiting(等待)

Timed waiting(计时等待)

Terminated(被终止)

当用new创建一个新线程时,如new Thread(r),该线程还没有开始运行。

一旦调用start方法,线程处于runnable状态。注意,在任何时刻,一个可运行的线程可能在运行也可能没有运行。所以称为可运行而不是运行。

被终止

因为run方法正常退出而自然死亡。

因为一个没有捕获的异常终止了run方法而意外死亡。

线程属性:

1.线程优先级

2.守护线程

通过调用t.setDaemon(true);

3.未捕获异常处理器

时间: 2024-09-19 10:53:10

线程状态与属性的相关文章

C#多线程实践——线程状态

线程状态关系图 在.NET Framework中,可以通过ThreadState属性获取线程的执行状态.上图标识出三种状态“层”,ThreadState以按位计算的方式组合状态层,每种状态层的成员之间都是互斥的,下面是所有的三种状态“层”: 运行 (running) / 阻止 (blocking) / 终止 (aborting) 状态(上图显示) 后台 (background) / 前台 (foreground) 状态 (ThreadState.Background) 不建议使用的Suspend

线程属性总结 线程的api属性

http://blog.csdn.net/zsf8701/article/details/7842392 //线程属性结构如下:typedef struct{ int etachstate; //线程的分离状态 int schedpolicy; //线程调度策略 structsched_param schedparam; //线程的调度参数 int inheritsched; //线程的继承性 int scope; //线程的作用域 size_t guardsize; //线程栈末尾的警戒缓冲区

学习java线程状态和看懂thread dump文件中的线程信息

线程的状态是一个很重要的东西,因此thread dump中会显示这些状态,通过对这些状态的分析,能够得出线程的运行状况,进而发现可能存在的问题.线程的状态在Thread.State这个枚举类型中定义: public enum State { /** * Thread state for a thread which has not yet started. */ NEW, /** * Thread state for a runnable thread. A thread in the runn

001-多线程基础-进程线程、线程状态、优先级、用户线程和守护线程

一.进程与线程 1.DOS系统[单进程系统] 最早的时候DOS有一个特点:只要电脑有病毒,那么电脑就死机了. 原因:传统的DOS系统属于单进程系统,即:在同一时间段内只允许有一个程序运行. 2.Windows系统[多进程多线程] 电脑中毒也可以运行,但是会变慢 原因:因为在一个cpu.一块资源的情况下,程序利用一些轮转算法,可以让一个资源在一个时间段可以同时处理多个程序(进程),但是在一个时间点上只允许一个进程去执行. windows:任务管理器 linux:ps 在每一个进程上可以划分出若干个

谈谈 Java 线程状态相关的几个方法

http://blog.jrwang.me/2016/java-thread-states/ 发表于 2016-07-23 在 Java 多线程编程中,sleep(), interrupt(), wait(), notify() 等方法是非常基本也很常用的方法.这些方法会改变运行中的 Java 线程的状态,正确地认识这些方法是掌握 Java 并发编程的基本要求. Java 线程的状态 先来谈一谈 Java 中线程的状态.在 Java 中,线程的状态和底层操作系统中线程的状态并不是一一对应的关系,

C# Thread 线程状态知识。

.NET 基础类库的System.Threading命名空间提供了大量的类和接口支持多线程.这个命名空间有很多的类.System.Threading.Thread类是创建并控制线程,设置其优先级并获取其状态最为常用的类.他有很多的方法,在这里我们将就比较常用和重要的方法做一下介绍:    Thread.Start():启动线程的执行: Thread.Suspend():挂起线程,或者如果线程已挂起,则不起作用: Thread.Resume():继续已挂起的线程: Thread.Interrupt

Java线程状态的改变

一.线程状态 线程的状态转换是线程控制的基础.线程状态总的可分为五大状态:分别是生.死.可运行.运行.等待/阻塞.用一个图来描述如下: 1.新状态:线程对象已经创建,还没有在其上调用start()方法. 2.可运行状态:当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态.当start()方法调用时,线程首先进入可运行状态.在线程运行之后或者从阻塞.等待或睡眠状态回来后,也返回到可运行状态. 3.运行状态:线程调度程序从可运行池中选择一个线程作为当前线程时线程所处的状态.这也是线

通过show processlist命令查看主从库复制线程状态

1.主库IO线程状态说明: <1>sending binlog event to slave 线程已经从二进制日志读取了一个事件,正在发送给从服务器. <2>Finished reading one binlog;switching to next binlog. 线程已经读完二进制日志文件,并且正打开下一个要发送到从服务器的二进制日志文件. <3>Has sent all binlog to slave; waitting for binlog to be updat

线程的生命周期与线程状态

一.如果希望明确地让一个线程给另外一个线程运行的机会,可以采取以下办法之一. 调整各个线程的优先级 让处于运行状态的线程调用Thread.sleep()方法 让处于运行状态的线程调用Thread.yield()方法 让处于运行状态的线程调用另一个线程的join()方法 二. 一个线程会因为以下原因而放弃CPU. 1 java虚拟机让当前线程暂时放弃CPU,转到就绪状态,使其它线程或者运行机会. 2 当前线程因为某些原因而进入阻塞状态 3 线程结束运行 三. 线程状态 NEW是至今尚未启动的线程的