Java线程状态及Thread类中的主要方法
要想实现多线程,就必须在主线程中创建新的线程对象.
不论什么线程一般具有5种状态,即创建,就绪,执行,堵塞,终止.
创建状态:
在程序中用构造方法创建了一个线程对象后,新的线程对象便处于新建状态,此时,他已经有了对应的内存空间和其它资源,但还处于不可执行状态.
就绪状态:
新建线程对象后,调用该线程的start()方法能够启动线程.当线程启动时,线程进入就绪状态.此时,线程将进入线程队列排队,等待CPU服务,这表明它已经具备了执行条件.-------(执行start()方法仅仅是进入就绪状态,并没有開始执行.)
执行状态:
当就绪状态的线程被调用并获得处理器资源时,线程就进入了执行状态.此时,自己主动调用该现场对象的run()方法.run()方法定义了该线程的操作和功能.
阻塞状态:
一个正在运行的线程在某些特殊情况下(运行耗时操作或调用sleep(),suspend(),wait()等方法),会让出CPU并临时中止自己的运行,进入阻塞状态.阻塞时,线程不能进入排队队列,仅仅有当引起阻塞的原因被消除后,线程才干够转入就绪状态.
终止状态:
线程调用stop()方法时或run()方法运行结束后,即处于死亡状态.
状态图:
Thread类中的主要方法:
Java线程状态及Thread类中的主要方法的更多相关文章
- java 多线程3:Thread类中的静态方法
Thread类中的静态方法 Thread类中的静态方法表示操作的线程是"正在执行静态方法所在的代码块的线程".为什么Thread类中要有静态方法,这样就能对CPU当前正在运行的线程 ...
- Thread类中的join方法
package charpter06; //类实现接口public class Processor implements Runnable { // 重写接口方法 @Override public v ...
- Java用代码演示String类中的以下方法的用法
用代码演示String类中的以下方法的用法 (1)boolean isEmpty(): 判断字符串是不是空串,如果是空的就返回true (2)char charAt(int index): 返回索引上 ...
- 线程中断:Thread类中interrupt()、interrupted()和 isInterrupted()方法详解
首先看看官方说明: interrupt()方法 其作用是中断此线程(此线程不一定是当前线程,而是指调用该方法的Thread实例所代表的线程),但实际上只是给线程设置一个中断标志,线程仍会继续运行. i ...
- java面试题之Thread类中的start()和run()方法有什么区别
start()方法被用来启动新创建的线程,而且start()内部调用了run()方法, 区别: 当你调用run()方法的时候,只会是在原来的线程中调用,没有新的线程启动: start()方法才会启动新 ...
- java中的 java.util.concurrent.locks.ReentrantLock类中的lockInterruptibly()方法介绍
在java的 java.util.concurrent.locks包中,ReentrantLock类实现了lock接口,lock接口用于加锁和解锁限制,加锁后必须释放锁,其他的线程才能进入到里面执行, ...
- 【Android笔记】Thread类中关于join()方法的源码分析
1.join()方法的作用: 例如有一个线程对象为Thread1,在main()方法中调用Thread1.join()方法可使得当前线程(即主线程)阻塞,而执行Thread1线程. 2.源码分析(以上 ...
- Thread 类中的 yield 方法有什么作用?
使当前线程从执行状态(运行状态)变为可执行态(就绪状态). 当前线程到了就绪状态,那么接下来哪个线程会从就绪状态变成执行状态呢?可 能是当前线程,也可能是其他线程,看系统的分配了.
- 多线程(Thread类中的方法线程名称)
1 package multithread; 2 3 /* 4 * 如何创建一个线程呢? 5 * 6 * 创建线程方式一:继承Thread类. 7 * 8 * 步骤: 9 * 1,定义一个类继承Thr ...
随机推荐
- android 小结
1.layout中的布局文件xml中不能有大写字母. 2.时刻要想着空指针,尤其是安卓5.0后,不报异常,直接ANR.
- 基于visual Studio2013解决C语言竞赛题之0701排队输出
题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> void swap(int *a,int *b) { *a = *a ...
- Android解析Excel文档完整示例
MainActivity如下: package cc.testexcel; import java.io.File; import jxl.Cell; import jxl.CellType; imp ...
- 百度2015校园招聘自然语言处理project师面试
面了一个多小时,大致回想下 1. 介绍一下简历上的项目 这个讲了好长时间,由于我做的是生物信息,面试官听得不太明确. 2. 一个城市每对夫妇都要生到一个男孩才停止生育,问终于该城市的男女比例 1:1, ...
- [置顶] Hibernate从入门到精通(七)多对一单向关联映射
上次的博文Hibernate从入门到精通(六)一对一双向关联映射中我们介绍了一下一对一双向关联映射,本次博文我们讲解一下多对一关联映射 多对一单向关联映射 多对一关联映射与一对一关联映射类似,只是在多 ...
- No mapping found for HTTP request with URI [/HelloWeb/] in DispatcherServlet with name 'HelloWeb' Spring MVC
I'm learning the Spring Framework, and I'm doing the HelloWeb tutorial on tutorialspoint, and I can' ...
- perl 处理perl返回的json
[root@wx03 ~]# cat a14.pl use Net::SMTP; use LWP::UserAgent; use HTTP::Cookies; use HTTP::Headers; u ...
- Swift - 短信发送功能的实现
使用MessageUI.framework框架可以实现短信发送功能,步骤如下: (1)首先判断设备是否有发送短信功能 (2)如果设备允许发送短信,创建一个MFMessageComposeViewCon ...
- VS2010+QT4.8.5 +FastReport教程
如需转载请标明出处:http://blog.csdn.net/itas109 採用QT 的QAxObject方式执行FastReport特别麻烦,并且无法在编译的时候知道代码是否正确,并且大部分的函数 ...
- fzu 1911 Construct a Matrix(矩阵快速幂+规律)
题目链接:fzu 1911 Construct a Matrix 题目大意:给出n和m,f[i]为斐波那契数列,s[i]为斐波那契数列前i项的和.r = s[n] % m.构造一个r * r的矩阵,只 ...