iOS多线程之Thread
多线程
•
Thread 是苹果官方提供的,简单已用,可以直接操作线程对象。不过需要程序员自己管理线程的生命周期,主要是创建那部分
- 优缺点
- 面向对象,简单易用
- 直接操作线程对象
- 需要自己管理线程生命周期(主要指创建)
- 偶尔会用的Thread,一般会用到它的方法;current、name等等
基本使用
- 创建线程
```
创建线程,手动启动
let thread = Thread(target: self, selector: #selector(makeMoney), object: [“Name”: “snailjj”])
thread.name = “Thread1” //线程的名字
thread.threadPriority = 0.6 //线程的优先级
thread.start() //创建完成后,手动启动线程,并且会执行makeMoney的方法大专栏 iOS多线程之Thread/li>
创建线程,并且自己启动
hread.detachNewThreadSelector(#selector(eat), toTarget: self, with: nil)
* 线程相关方法
Thread.current:获取当前线程
Thread.main:获取主线程
thread.isMainThread:当前线程是否是主线程
thread.name:当前线程的名字
thread.threadPriority:获取线程的优先级 0~1,线程优先级区别于线程占有cpu时间的多少,当然优先级越高同等条件下占有的cpu时间越多。级别高的执行效率要高于级别低的
* 线程状态控制的方法
thread.start() 线程进入就绪状态 -> 运行状态,当线程结束后,自动进入死亡状态
//线程进入阻塞(暂停)状态
Thread.sleep(forTimeInterval: 0.5)
Thread.sleep(until: Date(timeIntervalSinceNow: 0.5))
//强制停止线程,并且进入死亡状态
Thread.exit()
```
iOS多线程之Thread的更多相关文章
- iOS多线程之8.NSOPeration的其他用法
本文主要对NSOPeration的一些重点属性和方法做出介绍,以便大家可以更好的使用NSOPeration. 1.添加依赖 - (void)addDependency:(NSOperation * ...
- iOS多线程之GCD小记
iOS多线程之GCD小记 iOS多线程方案简介 从各种资料中了解到,iOS中目前有4套多线程的方案,分别是下列4中: 1.Pthreads 这是一套可以在很多操作系统上通用的多线程API,是基于C语言 ...
- Java基础-进程与线程之Thread类详解
Java基础-进程与线程之Thread类详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.进程与线程的区别 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程 ...
- iOS多线程之1.从Thread看多线程的生命周期
Thread 是多线程中最容易理解,但是使用起来又是最麻烦的一种多线程方法.为什么说容易理解呢?一个NSThread的对象就是一条线程.使用起来麻烦是因为,需要我们自己管理线程的生命周期:创建线程 ...
- iOS多线程之NSThread使用
iOS中的多线程技术 我们在iOS开发项目过程中,为了解决UI界面操作不被耗时操作阻塞,我们会使用到多线程技术.在iOS开发中,我们主要会用到三种多线程操作技术:NSThread,NSOperatio ...
- iOS多线程之GCD详解
GCD(Grand Central Dispatch)是基于C语言开发的一套多线程开发机制.也是目前苹果官方推荐的多线程开发方法.iOS三种多线程开发中GCD是抽象层次最高的.当然用起来也是最简单的. ...
- iOS多线程之NSOperation详解
使用NSOperation和NSOperationQueue进行多线程开发,只要将一个NSOperation(实际开发中需要使用其子类 NSInvocationOperation,NSBlockOpe ...
- iOS多线程之NSThread详解
在iOS中每个进程启动后都会建立一个主线程(UI线程),这个线程是其他线程的父线程.由于iOS中除了主线程,其他子线程是独立于Cocoa Touch的,所以只有主线程可以更新UI界面.iOS多线程的使 ...
- 【原】iOS多线程之NSThread、NSOperationQueue、NSObject和GCD的区别
区别: Thread: 是这几种方式里面相对轻量级的,但也是使用起来最负责的,你需要自己管理thread的生命周期,线程之间的同步.线程共享同一应用程序的部分内存空间, 它们拥有对数据相同的访问权限. ...
随机推荐
- SQL count与distinct的结合使用
select Score,(select count(distinct score) from Scores where score >= s.score) as Rank from Score ...
- zabbix-agent服务无法启动
zabbix-agent服务无法启动解决方案1.先配置yum源2.卸载已经安装的zabbix-agent3.重新安装zabbix-agent4.配置zabbix-agent配置文件: Server=服 ...
- 工具类BitMap 把网络URL图片转换成BitMap
代码不复杂,直接把完整代码贴上. 这次是用到很旧的HttpURLConnection,那为什麽会用这个,因为我本来想转回okhttp的,可实在没时间转,项目就已经做下去了,结果转不回来. packag ...
- 在线好用的json转xml超级好用在线json与xml互相转换
在线好用的json转xml超级好用在线json与xml互相转换 拿走不谢:http://www.yzcopen.com/json/jsonxmlformat
- oracle中null的理解
< EXAMNO STUNO WRITTENEXAM LABEXAM e2014070001 s25301 80 58 e2014070002 s25302 50 e2014070003 s ...
- Linux_打包文件
将多个文件打包成一个大文件,用tar命令 tar是将多个文件前后连接在一起,tar并不对文件进行压缩 tar -cf 要创建的打包文件名(最后加上.tar) 要打包的文件/列表 c代表创 ...
- 27)PHP,视图
其实,视图就是一堆select形成的一个表格,但是这个表格也是存在一个数据库里面的,但是,他不会和一般的表格似得在数据库中显示,就好像虚拟存储器的那种感觉一样. 比如 必看我的一下句子 create ...
- vs编译完提示不支持尝试的执行操作
最近公司在用MFC做项目,编译完就弹窗提示,不支持尝试的执行操作,开始没注意,但是点击弹窗提示无反应: 问题原因:dialog里的控件有的已经删除了,但是DoDataExchange函数还存在控件的关 ...
- LeetCode No.79,80,81
No.79 Exist 单词搜索 题目 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相 ...
- Qt 无法打开包括文件:“QGLWidget”: No such file or directory
只需要在.pro文件中加上 QT += opengl 然后再执行qmake即可