码迷,mamicode.com
首页 > 其他好文 > 详细

4-22 学习心得

时间:2015-04-22 20:18:02      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

ARC 只能作用于 Objective-C 对象

1.sleep(unsigned int);

该函数给当前线程挂起给定时间(unsigned int)秒后继续执行下一句。(使程序睡眠)

例如:

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        int i = 10;

        NSLog(@"开始阻塞了");

        dispatch_queue_t queue = dispatch_queue_create("lmp", nil);

        dispatch_sync(queue, ^{

            NSLog(@"&&&&&&&");

            sleep(i / 5);

            NSLog(@"----%d----",i);

            

        });

                // ARC模式不需要这句,没开的就要写上

//        dispatch_release(queue);

        NSLog(@"阻塞了两秒");

    }

    return 0;

}

 

打印结果:

2015-04-22 14:03:14.229 学习-多线程[1255:47112] 开始阻塞了

2015-04-22 14:03:14.230 学习-多线程[1255:47112] &&&&&&&

2015-04-22 14:03:16.231 学习-多线程[1255:47112] ----10----

 

2015-04-22 14:03:16.231 学习-多线程[1255:47112] 阻塞了两秒

 

2. dispatch_semaphore 信号量基于计数器的一种多线程同步机制

// 创建

dispatch_semaphore_t semaphore = dispatch_semaphore_create(1);

dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);

 

semaphore计数大于等于1:程序继续运行

计数-1:返回

计数为0:等待       

DISPATCH_TIME_FOREVER:一直等待

4-22 学习心得

标签:

原文地址:http://www.cnblogs.com/pocket-mood/p/4448244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!