博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4-22 学习心得
阅读量:4659 次
发布时间:2019-06-09

本文共 913 字,大约阅读时间需要 3 分钟。

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:一直等待

转载于:https://www.cnblogs.com/pocket-mood/p/4448244.html

你可能感兴趣的文章
记忆讲师石伟华微信公众号2017所有文章汇总(待更新)
查看>>
FactoryBean
查看>>
Coolite动态加载CheckboxGroup,无法在后台中获取
查看>>
C3P0连接池工具类使用
查看>>
SVN常用命令备注
查看>>
孩子教育
查看>>
解决Cacti监控图像断断续续问题
查看>>
结构体的传参理解成员的存储方式
查看>>
python 进程与线程(理论部分)
查看>>
什么是API
查看>>
强名称程序集(strong name assembly)——为程序集赋予强名称
查看>>
1028. List Sorting (25)
查看>>
BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划
查看>>
ubuntu 重启命令,ubuntu 重启网卡方法
查看>>
Linux的学习:
查看>>
JavaScript中的原型继承原理
查看>>
Python logger模块
查看>>
jquery控制css的display(控制元素的显示与隐藏)
查看>>
关于python做人工智能的一个网页(很牛逼)
查看>>
判断控件的CGRect是否重合,获取控件的最大XY值
查看>>