Android-Thread线程的状态
介绍Thread线程的状态之前,必须要讲解CPU执行线程的随机性:
例如:有五个线程,CPU中央处理器,在执行这五个线程的时候,有可能先执行Thread-0,有可能先执行Thread-3,等等,都有可能
有可能执行到Thread-2 执行了一半,然后又去执行Thread-1了,等等,都有可能
....
意思就是:Thread-0/Thread-1/Thread-2/Thread-3,都已经.start();了,那Thread-0/Thread-1/Thread-2/Thread-3 都有CPU执行资格,但是这些线程CPU执行权不一定有。
最简单的Thread运行状态:

完整的Thread运行状态:
1.当start(); 后有可能马上就是运行状态(具备CPU执行权),也有可能是临时阻塞状态(不具备CPU执行权)
2.例如:有两个线程 Thread-0 / Thread-1 / Thread-2,当Thread-1被CPU执行(代表具备CPU执行权) 这个时候Thread-0/Thread-2(临时阻塞状态 不具备CPU执行权)
3.线程的结束,在之前早期的Java版本,是可以.stop(); 结束线程的,但是这种方式Java的设计者们认为不安全,所以被过时了,目前结束线程的方式是 run方法执行结束就代表线程结束
4.关于冻结状态:sleep(5000) 就会冻结5秒,冻结的时候,没有CPU执行资格 更没有CPU执行权,5秒过后就有可能回到临时阻塞状态,也有可能回到运行状态
5.关于冻结状态:wait();后 会一直处于冻结状态,自己没法回到 运行状态/临时阻塞状态,需要调用notify(); , 注意:还有一个方法 notifyAll(); 唤醒全部

Android-Thread线程的状态的更多相关文章
- 面经手册 · 第20篇《Thread 线程,状态转换、方法使用、原理分析》
作者:小傅哥 博客:https://bugstack.cn Github:https://github.com/fuzhengwei/CodeGuide/wiki 沉淀.分享.成长,让自己和他人都能有 ...
- Thread线程的基础知识及常见疑惑点
引言 相信各位道友在平时工作中已经很少直接用到Thread线程类了,现在大多是通过线程池或者一些多线程框架来操作线程任务,但我觉得还是有必要了解清楚Thread线程类中各种方法的含义,了解了底层才能更 ...
- C# Thread 线程状态知识
.NET 基础类库的System.Threading命名空间提供了大量的类和接口支持多线程.这个命名空间有很多的类.System.Threading.Thread类是创建并控制线程,设置其优先级并获取 ...
- android 进程/线程管理(三)----Thread,Looper / HandlerThread / IntentService
Thread,Looper的组合是非常常见的组合方式. Looper可以是和线程绑定的,或者是main looper的一个引用. 下面看看具体app层的使用. 首先定义thread: package ...
- java基础知识回顾之java Thread类学习(十)--线程的状态以及转化使用的方法介绍
线程的概述: 线程是程序的多个执行路径,执行调度的单位,依托于进程存在.线程不仅可以共享进程的内存,而且还拥有一个属于自己的内存空间,这段内存空间叫做线程栈,是建立线程的时候由系 ...
- 04 Thread的方法(源代码) 和 线程的状态
1 .Thread中重要的属性 publicclass Thread implements Runnable { //继承自Runnable接口private char name[]; // 以c ...
- Thread线程源码解析,Java线程的状态,线程之间的通信
线程的基本概念 什么是线程 现代操作系统在运行一个程序的时候,会为其创建一个进程.例如,启动一个Java程序,操作系统就会创建一个Java进程.线代操作系统调度的最小单位是线程.也叫做轻量级进程.在一 ...
- Android(java)学习笔记72:线程的状态转换图以及常见执行情况
1. 线程的状态转换图以及常见执行情况: 2. 线程状态类型: (1)新建状态(New):新创建了一个线程对象.(2)就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start() ...
- Android(java)学习笔记12:线程的状态转换图以及常见执行情况
1. 线程的状态转换图以及常见执行情况: 2. 线程状态类型: (1)新建状态(New):新创建了一个线程对象.(2)就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start() ...
随机推荐
- Mysql通过SQL脚本复制表
create table if not exists t_dest like t_src 其中,t_src是要复制的原始表,t_dest是要创建的新表.
- zg项目 应用系统编码原则
一.编码说明: 1.系统编码采用三码为原则,通常两码简称之. 1>.子系统或类型 2>.系统小分类 3>.系统大分类 如 IPMS领域业务群: DA 应用软件发展管理系统 DE公用副 ...
- Linux下启动Tomcat启动并显示控制台日志信息
Linux下如何启动Tomcat像Windows启动并显示控制台日志信息一样? Windows下启动tomcat,一般直接运行startup.bat,启动后如下图所示: Linux下直接启动./sta ...
- Python str() 函数
Python str() 函数 Python 内置函数 描述 str() 函数将对象转化为适于人阅读的形式. 语法 以下是 str() 方法的语法: class str(object='') 参数 ...
- 运行 命令框不记录打过的命令,重启后CMD里面是空的.上次打过的命令消失了.
问题: 常要用到PING命令.在cmd中输入ping 202.103.44.150 /t (这是当地的电信DNS) 用这个查看网络是不是正常.正常情况下次点开始运行的时候,运行命令框中应该 会有上次打 ...
- leetcode 183. Customers Who Never Order
select Name as Customers from Customers where Id not in (select CustomerId from Orders);
- leetcdoe 175. Combine Two Tables
给定两个表,一个是人,一个是地址,要求查询所有人,可以没有地址. select a.FirstName, a.LastName, b.City, b.State from Person as a le ...
- 15-matlab矩阵运用
from scipy.spatial import Delaunay from mpl_toolkits.mplot3d import Axes3D import numpy as np import ...
- 3-QT程序运行时报错E:\SogouInput\6.7.0.0329\程序异常终止,该怎么解决?
https://bbs.csdn.net/topics/390653779 出现这个错误的原因,使用声明的对象时,没有使用new对对象进行实例化. 包括:数组.
- Problem B. Market(market.c/cpp/pas)
Problem B. Market(market.c/cpp/pas)Time limit: 1 secondsMemory limit: 128 megabytes在比特镇一共有 n 家商店,编号依 ...