iOS 多线程 (一)

女程序员的第一篇博客  从事开发半年

iOS大致提供了如下三种多线程编程技术

1.使用NSThread实现多线程
2.使用NSOperation与NSOperationQueue实现多线程
3.使用GCD(Grand Central Dispatch)实现多线程

这三种编程方式从上到下,抽象层次从低到高,抽象度越高用法越简单

我们先来看看第一种~NSThread:
第一步:创建NSThread对象
两种方式~

1.NSThread *first = [[NSThread alloc]initWithTarget:<#(id)#> selector:<#(SEL)#> object:<#(id)#>];

2.NSThread *second = [NSThread detachNewThreadSelector:<#(SEL)#> toTarget:<#(id)#> withObject:<#(id)#>];

其中selector最多可以接受一个参数 Target对象的selector方法的方法代表了线程需要完成的任务,因此相当于吧target对象的selector方法转换为线程的执行体
第一种方法返回一个NSThread对象 必须调用start方法启动线程 第二种会直接创建并启动线程
当iOS应用运行后,至少会创建一个主线程,也叫UI线程。
+currentThread: 是NSThread类的类方法 返回当前正在执行的线程对象 除此之外程序可以通过setName方法为线程设置名字,也可以通过name方法返回指定线程的名字。
启动线程使用start方法,线程启动后并不是立即进入运行状态,线程被启动后进入就绪状态,当系统调度线程后,线程才会进入运行状态。如果希望调用子线程的start方法后立即开始执行线程,可以使用[NSTread sleepFprTimeInterval:0.001].
终止子线程
线程会在以下3种方式之一结束,结束就处于死亡状态
1.线程执行体方法执行完成,线程正常结束
2.线程执行过程中出现错误
3.直接调用NSTread类的exit方法来终止当前正在执行的线程

未完待续


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值