?可以看到,在queue里的任务,不仅仅是一个函数,也可以是一个其他的queue。 下面是一个例子。?全局队列的处理一般一个全局队列有多个线程,这些个线程会遍历并处理链表里的任务。对于全局队列,当一个任务被抛进来后,会尽快处理掉。如果有空闲线程,那么这个空闲线程会处理这个任务。如果没有空闲线程,那么... ...
分类:
其他好文 时间:
2019-04-20 11:30:08
阅读次数:
130
你好2019!一起努力呀! 直奔主题 1、dispatch_barrier_async VS dispatch_barrier_sync NSLog(@"main 1--"); dispatch_async(self.concurrentQueue, ^{ NSLog(@"test1 begin - ...
分类:
其他好文 时间:
2019-01-26 18:45:41
阅读次数:
142
dispatch_sync 线程同步、dispatch_async线程异步 这些代码输出的结果是 1 2 3 4 依次输出、无论你运行多少次都会是这一种结果 但是来看下面的异步呢? 输出的结果是 1 2 3 4 随机输出、有时 2 1 3 4 有时 1 3 2 4 等 在iOS中是无法使用 disp ...
分类:
其他好文 时间:
2019-01-10 10:58:10
阅读次数:
127
一、原书第一版154页开始讲解串行队列、并发队列、以及在Dispatch_Async、Dispatch_Sync下面的作用 最后一段代码: 代码如上面,最后输出的数字代表执行顺序。书中最后说顺序会输出两个结果,12345、12435、3一定会在4之前被打印出来 看到这里觉得有些不对,写了代码试了一下 ...
分类:
移动开发 时间:
2018-10-09 23:10:56
阅读次数:
227
- (void)viewDidLoad { [super viewDidLoad]; // 添加控件等操作 [self.customsTableView reloadData]; dispatch_async(dispatch_get_main_queue(),^{ if (self.customs ...
分类:
其他好文 时间:
2018-09-11 16:14:37
阅读次数:
163
dispatch_sync:同步操作,会阻塞当前线程 dispatch_async:普通的异步操作,也就是在指定的队列中添加一个block操作,不会阻塞当前线程 dispatch_group_async:与dispatch_async相比需要多一个group参数(dispatch_group_t类型 ...
注意的是根据通知刷新tabbar上面的badge的时候,一定是要在主线程,代码一定要放在主线程 dispatch_async(dispatch_get_main_queue(), ^{ [self.tabBar.items[2] setBadgeValue:[notification.userInf ...
分类:
移动开发 时间:
2018-06-06 18:30:41
阅读次数:
235
最近使用阿里云的oss 上传文件遇到的问题 解决方式 外层加了队列,本文主要写线程和信号量 持续更新 dispatch_async(dispatch_get_global_queue(0, 0), ^{ // 分块上传 [upload multipartUpload:videoPath object ...
分类:
编程语言 时间:
2018-01-26 14:07:44
阅读次数:
187
使用Axis2这个框架进行webservice协议通讯,期间出了个问题,我(CLIENT)请求后,当服务端返回符合协议的SOAP异常报文,例如<soap:fault> ... 我的程序直接抛org.apache.axis2.AxisFault异常,导致连服务端给我们的报文都没有接收成功。 --请注意 ...
分类:
Web程序 时间:
2017-11-03 20:27:42
阅读次数:
233
深入理解 GCD 前言 首先提出一些问题: dispatch_async 函数如何实现,分发到主队列和全局队列有什么区别,一定会新建线程执行任务么? dispatch_sync 函数如何实现,为什么说 GCD 死锁是队列导致的而不是线程,死锁不是操作系统的概念么? 信号量是如何实现的,有哪些使用场景 ...
分类:
其他好文 时间:
2017-09-26 23:42:47
阅读次数:
280