多线程
•
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()
```