iOS多线程

iOS多线程的实现方式有三种,1、NSThread。 2、NSOperation。   3、GCD。

1、NSThread 

     NSThread 调用方法一般如下几种。

     1.1    [NSThread detachNewThreadSelector:<#(SEL)#> toTarget:<#(id)#> withObject:<#(id)#>];

     1.2   NSThread * newThread = [[NSThread alloc] initWithTarget:<#(id)#> selector:<#(SEL)#> object:<#(id)#>];

              [newThread start];

    1.3   [self performSelector:<#(SEL)#> withObject:<#(id)#>];

2、NSOperation

NSOperation也是多线程的一种,NSOperation有两种形式

      (1)并发执行

         并发执行需要重载4个方法。

                1、执行任务的主函数,运行程序的入口

        -(void)start

2、是否允许并发,返回yes表示允许并发,no为不允许并发。默认为no。

    -(void)isConCurrent

3、-(void)isExecuting

4、是否完成,这个方法必须重载。不然放在NSoperationQueue不能正常释放。

-(void)isFinished

      (2)非并发执行

非并发执行只需要重载main方法就可以了。

  -(void)main

3、GCD

GCD是和block紧密相连的,GCD是C level的函数,这也意味着它也提供了C的函数指针作为参数方便了C程序员

        GCD的使用

1、   dispatch_async(<#dispatch_queue_t queue#>, <#^(void)block#>)

        async表明异步运行,block代表是需要做的事情。queue是把事情交给谁来处理。(出了async还有sysc和delay)

       GCD有三种queue来处理

       (1)main queue

       (2)serial queue(private dispatch queue)

 (3)  ConCurrent queue (global dispatch queue)



更多详细的讲解:http://wenku.it168.com/d_001264369.shtml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值