加载中
dispatch_apply

_queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_apply(10, _queue, ^(size_t i) { NSLog(@"%ld,%@",i,[NSThread currentThread]); }); 这个GCD函数可以...

2018/06/29 15:42
11
GCD中的概念理解

串行队列,任务是一个一个执行的,比如第一个是同步任务,第二个是异步任务,他们即使在不同的线程,但是需要按照加入时的顺序依次执行。 并发队列,任务是可以并发执行的,可以将任务放在不...

2018/06/27 09:09
17
使用信号量来实现线程的先后执行顺序

#import "ViewController.h" @interface ViewController (){ dispatch_semaphore_t _sema1; dispatch_semaphore_t _sema2; } @end @implementation ViewController - ...

2018/04/03 10:51
81
关于dispatch_semaphore的使用

转载请注明出处http://www.cnblogs.com/snailHL/p/3906112.html dispatch_semaphore是GCD用来同步的一种方式,与他相关的共有三个函数,分别是 dispatch_semaphore_create,dispatch_semaph...

2017/12/07 15:48
17
iOS GCD中级篇 - dispatch_semaphore(信号量)的理解及使用

理解这个概念之前,先抛出一个问题 问题描述: 假设现在系统有两个空闲资源可以被利用,但同一时间却有三个线程要进行访问,这种情况下,该如何处理呢? 或者 我们要下载很多图片,并发异步进...

2017/12/06 14:53
7
iOS GCD 死锁理解

同步(dispatch_sync): dispatch_sync(fcQueue, ^{ NSLog(@"1"); // 任务 1 }); NSLog(@"2"); // 任务 2 dispatch_sync(fcQueue, ^{ NSLog(@"3"); // 任务 3 }); NSLog(@"...

2017/04/09 18:06
12
GCD死锁

NSLog(@"1"); // 任务1 dispatch_sync(dispatch_get_main_queue(), ^{ NSLog(@"2"); // 任务2 }); 所谓死锁,通常指有两个线程A和B都卡住了,A在等B ,B在等A,相互等待对方完...

2017/04/09 17:24
2
为什么要在主线程更新UI?

因为子线程代码执行完毕了,又自动进入到了主线程,执行了子线程中的UI更新的函数栈,这中间的时间非常的短,就让大家误以为分线程可以更新UI。如果子线程一直在运行,则子线程中的UI更新的函...

2017/03/12 08:02
119
RunLoop 事件的序列

每次, RunLoop 会操作输入的 events(各种 input source 产生的) 并产生 notifications(给 observers). RunLoop 的处理 events 并且发出 notifications 的具体的顺序如下: 1> 发 notification...

2017/03/10 21:39
11
异步下载图片—— JLWebImage

JLWebImage提供了异步下载图片的功能,已经做好了图片缓存,用一个分类实现,方法如下: #import <UIKit/UIKit.h> @interface UIImageView (JLWebCache) /** 下载图片 @param url 图片地...

2017/03/10 20:26
6
RunLoop

#RunLoop与线程的关系 每条线程都有唯一的一个与之对应的RunLoop对象 主线程的RunLoop已经自动创建好了,子线程的RunLoop需要主动创建 RunLoop在第一次获取时创建,在线程结束时销毁 #RunLo...

2017/03/09 19:53
3
深刻理解GCD究竟牛逼在哪里

并发所描述的概念就是同时运行多个任务。这些任务可能是以在单核 CPU 上分时(时间共享)的形式同时运行,也可能是在多核 CPU 上以真正的并行方式来运行。 OS X 和 iOS 提供了几种不同的 AP...

2017/03/05 20:55
10
iOS多线程之NSOperation

1.简介 1.1NSOperation的作用 配合使用NSOperation和NSOperationQueue也能实现多线程编程 1.2NSOperation和NSOperationQueue实现多线程的具体步骤 先将需要执行的操作封装到一个NSOperation...

2016/01/10 17:42
34
GCD的其他用法

1.延时操作 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{     // 2秒后异步执行这里的代码...      })...

2016/01/08 21:14
46
iOS多线程之GCD

1.简介 什么是GCD 全称是Grand Central Dispatch,可译为“牛逼的中枢调度器” 纯C语言,提供了非常多强大的函数 GCD的优势 GCD是苹果公司为多核的并行运算提出的解决方案 GCD会自动利用更多...

2016/01/08 13:34
77
iOS多线程之互斥锁

1.安全隐患解决-互斥锁 互斥锁使用格式 @synchronized(锁对象) { // 需要锁定的代码  } 注意:锁定1份代码只用1把锁,用多把锁是无效的 互斥锁的优缺点 优点: 能有效防止因多线程抢夺...

2016/01/07 21:18
70
iOS多线程之NSThread

1.创建和启动线程 一个NSThread对象就代表一条线程 创建和启动线程 NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil]; [thread sta...

2016/01/07 09:36
47
iOS多线程的实现方案

技术方案 简介 语言 生命周期 使用频率 NSThread 使用更加面向对象 简单实用,可直接操作线程对象 OC 程序猿管理 偶尔使用 GCD 旨在替代NSThread等线程技术 充分利用设备的多核 C 自动管理 ...

2016/01/07 00:17
40
进程与线程

进程:在系统中正在运行的一个应用程序。(比如像QQ和微信各自都是一个进程) 线程: 是进程的基本单元,一个进程(程序)的所有任务都在线程中执行 一个进程要想执行任务,必须有线程(每个...

2016/01/06 23:30
60

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部