IOS 多线程初探(一) - NSThread

废话不多说,直奔主题。今天简单介绍下IOS中的三种创建线程的方法

  1. 创建NSThread对象
    NSThread *t = [[NSThread alloc] initWithTarget:self selector:@selector(functionName) object:nil];
    [t start];

这是个典型的target-action方式,指定目标为self,执行动作为functionName,object为functionName的参数。调用start方法后,线程会执行functionName这个函数,此函数没有返回值。

2 创建一个类继承NSThread类,并覆盖main方法。

    @interface  MyThread : NSThread

    @end

    @implementation MyThread

    - (void) main
    {
        xxxxx.....
    }
    @end

    - (void)function
    {
        MyThread *t = [[MyThread alloc] init];
        [t start];
    }

在需要开启线程的地方创建MyThread对象,并调用start方法启动线程,便会执行到MyThread类中的main方法。

3 使用detach静态方法

    [NSThread detachNewThreadSelector:@selector(functionName) toTarget:self withObject:nil];

使用detach静态方法不需要调用start方法便可直接启动线程,执行functionName方法。同样,withObject是functionName需要的参数。

介绍完线程的创建方法后,顺带介绍下线程的状态及睡眠和退出方法。

IOS中线程有三个状态,executing cancel finished。但是cancel和finished状态到底有什么用现在我还不知道,以后再来补充

  1. sleepUntilDate
    线程一直睡眠,直到某一时刻苏醒,执行动作。

  2. sleepForTimeInterval
    使线程睡眠多少秒,类似于linux中的sleep函数。

  3. exit
    [NSThread exit];
    退出线程。类似于linux中的exit函数。

  4. cancel
    NSThread *t;
    [t cancel];
    设置线程状态为取消状态。具体什么作用不详。。。有待研究。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值