//
// ViewController.m
// 04-了解-线程的状态
//
// 创建线程是处于新建状态,start是就绪状态,会放入到可调度线程池里面(cpu看线程是否可以调用,是看线程是否在可调度线程池里面),cpu调度他的时候就会进入运行状态,当这个线程的时间片用完之后,进入就绪状态。所以调用了start方法之后,线程会在运行状态和就绪状态之间进行来回的切换。当线程调用sleep方法时候会进入阻塞状态,进入阻塞状态的线程是不可以工作的,进入阻塞状态时候线程会从可调度线程池里面移除出来到内存里面。此时这个线程还存在只不过cpu不会调用他而已,当sleep时间到了之后,会又移入可调度线程池中进入就绪状态,当cpu调用的时候又会进入运行状态。
// 当线程里面的任务执行完或者异常退出了之后进入死亡状态,死亡会移除可调用线程池,并且从内存释放,不会做任何事情不要想着重新启动线程。 #import "ViewController.h" @interface ViewController () @end @implementation ViewController -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
//1.创建线程,新建状态,
NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(task) object:nil];
//2.启动线程,就绪状态,放入可执行线程池里面。<---->运行
[thread start];
} -(void)run //run方法执行完毕是死亡状态。
{
NSLog(@"run----%@",[NSThread currentThread]); //阻塞线程
[NSThread sleepForTimeInterval:2.0];//睡2秒,进入阻塞状态,移除可执行线程池。不能执行任何操作。
[NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:3.0]];//睡3秒,进入阻塞状态,移除可执行线程池。不能执行任何操作。
NSLog(@"end---");
} -(void)task
{
for (NSInteger i = ; i< ;i++) {
NSLog(@"%zd---%@",i,[NSThread currentThread]); if (i == ) {
[NSThread exit]; //退出当前线程,死亡状态。不要想着重新启动线程。
break; //break退出任务,表示任务已经执行完毕,线程也死亡了。
}
}
} @end

ios32---线程的状态的更多相关文章

  1. java 22 - 18 多线程之 线程的状态转换、线程组

    线程的状态转换图解:图片 线程的线程组: 线程组: 把多个线程组合到一起.    它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制. 首先创建一个Runnable的实现类 publi ...

  2. iOS开发多线程篇—线程的状态

    iOS开发多线程篇—线程的状态 一.简单介绍 线程的创建: self.thread=[[NSThread alloc]initWithTarget:self selector:@selector(te ...

  3. 【学习总结】【多线程】 安全隐患 & 通讯 & 线程的状态

    一.多线程的安全隐患 资源共享 1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源 比如多个线程访问同一个对象.同一个变量.同一个文件 当多个线程访问同一块资源时,很容易引发数据错乱和数 ...

  4. java基础知识回顾之java Thread类学习(十)--线程的状态以及转化使用的方法介绍

       线程的概述:         线程是程序的多个执行路径,执行调度的单位,依托于进程存在.线程不仅可以共享进程的内存,而且还拥有一个属于自己的内存空间,这段内存空间叫做线程栈,是建立线程的时候由系 ...

  5. Android(java)学习笔记72:线程的状态转换图以及常见执行情况

    1. 线程的状态转换图以及常见执行情况: 2. 线程状态类型: (1)新建状态(New):新创建了一个线程对象.(2)就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start() ...

  6. Java 线程的状态

    Java Thread的运行周期中, 有几种状态, 在 java.lang.Thread.State 中有详细定义和说明: NEW 状态是指线程刚创建, 尚未启动 RUNNABLE 状态是线程正在正常 ...

  7. OC中线程的状态相关

    1.线程的状态NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil]; ...

  8. JAVA中线程的状态

    java thread的运行周期中, 有几种状态, 在 java.lang.Thread.State 中有详细定义和说明: NEW:至今尚未启动的线程的状态. RUNNABLE:可运行线程的线程状态. ...

  9. Java多线程(一) —— 线程的状态详解

    一.多线程概述  1. 进程 是一个正在执行的程序.是程序在计算机上的一次运行活动. 每一个进程执行都有一个执行顺序.该顺序是一个执行路径,或者叫一个控制单元. 系统以进程为基本单位进行系统资源的调度 ...

  10. java中线程的状态详解

    一.线程的五种状态   线程的生命周期可以大致分为5种,但这种说法是比较旧的一种说法,有点过时了,或者更确切的来说,这是操作系统的说法,而不是java的说法.但对下面所说的六种状态的理解有所帮助,所以 ...

随机推荐

  1. weblogic启动 web应用ssh关闭 nohup命令

    平时我们操作linux服务器的时候,都是通过ssh远程连接,然后启动服务器上的服务的,所以有时候启动weblogic,我们关闭ssh,weblogic 服务也相应的关闭了,那么我们就只能用nohup这 ...

  2. qrcode.js扫码邀请

    //js引用部分<script src="../qrcode.js" type="text/javascript"></script> ...

  3. xshell连接不了虚拟机处理方法(错误提示:Connection closing...Socket close.Connection closed by foreign host.Disconnected from remote host(localhost) at 08:47:23.)

    一.问题描述:xshell连接不了虚拟机,出现错误提示:Connection closing...Socket close.Connection closed by foreign host.Disc ...

  4. Python之面向对象类和对象

    Python之面向对象类和对象 定义一个类:class 定义类的语法: class Test(object): """ 类里定义一类事物共同的技能. 可以是变量,也可是函 ...

  5. 移动Web解决方案的链接收藏

    信息类 html5 浏览器兼容性查询 - 浏览器内建对象文档 es5规范浏览器兼容性表格 es6规范浏览器兼容性表格 stackoverflow 最靠谱的问题解决方案 github 开源代码网站 全球 ...

  6. hdu - 1151 Air Raid(有向无环图的最小路径覆盖)

    http://acm.hdu.edu.cn/showproblem.php?pid=1151 在一个城市里有n个地点和k条道路,道路都是单向的,并且不存在环.(DAG) 现在伞兵需要去n个地点视察,伞 ...

  7. AOJ 0118 Property Distribution (DFS)

    http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=46522 简单DFS,题目翻译参考  http://blog.csdn.net ...

  8. 选择器的使用(first-child和last-child选择器)

    <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta ...

  9. JSP发送电子邮件

    以下内容引用自http://wiki.jikexueyuan.com/project/jsp/sending-email.html: 发送一个简单的电子邮件 给出一个简单的例子,从机器上发送一个简单的 ...

  10. CE310A

    http://v.ku6.com/show/tvWNTLZTVWuGVPE5ZMSUyQ...html