
多线程
吴凯凯
努力追赶我不切实际的思想
展开
-
GCD(一)
GCD(Grand Central Dispatch)是从OS X Snow Leopard和iOS 4开始引入的新一代的多线程编程技术。开发者只需定义想执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并有计划的执行任务。并且由于线程管理是作为系统的一部分来实现的,因此系统可以统一管理,它会决定什么时候创建新线程,创建哪些新线程,多个任务是顺序执行还是并发执行。这样转载 2014-06-27 14:57:36 · 584 阅读 · 0 评论 -
GCD(二)
dispatch_queue_create 用于创建用户线程队列。可以创建Serial/Concurrent Dispatch Queue 两种队列,即串行与并行队列。1. 创建Serial Dispatch Queue。转载 2014-06-27 15:13:17 · 591 阅读 · 0 评论 -
GCD学习(五) dispatch_barrier_async
dispatch_queue_t concurrentQueue = dispatch_queue_create("my.concurrent.queue", DISPATCH_QUEUE_CONCURRENT); dispatch_async(concurrentQueue, ^(){ NSLog(@"dispatch-1"); }); dispatch_转载 2014-07-02 20:44:06 · 852 阅读 · 0 评论 -
GCD学习(六) dispatch_async 和dispatch_sync
dispatch_queue_t concurrentQueue = dispatch_queue_create("my.concurrent.queue", DISPATCH_QUEUE_CONCURRENT); NSLog(@"1"); dispatch_sync(concurrentQueue, ^(){ NSLog(@"2"); [NSThr转载 2014-07-02 20:46:34 · 707 阅读 · 0 评论 -
GCD(三)
Main Dispatch Queue是在主线程中执行任务的Dispatch Queue。因为主线程只有1个,所以Main Dispatch Queue是Serial Dispatch Queue。追加到Main Dispatch Queue中的任务将在主线程的RunLoop中执行。因为是在主线程中执行,所以应该只将用户界面更新等一些必须在主线程中执行的任务追加到Main Dispatch Que转载 2014-07-01 19:05:14 · 605 阅读 · 0 评论 -
GCD(四)dispatch_group
如果想在dispatch_queue中所有的任务执行完成后在做某种操作,在串行队列中,可以把该操作放到最后一个任务执行完成后继续,但是在并行队列中怎么做呢。这就有dispatch_group 成组操作。dispatch_queue_t dispatchQueue = dispatch_queue_create("ted.queue.next", DISPATCH_QUEUE_CONCURREN转载 2014-07-01 19:09:28 · 622 阅读 · 0 评论 -
GCD学习(七) dispatch_apply
dispathc_apply 是dispatch_sync 和dispatch_group的关联API.它以指定的次数将指定的Block加入到指定的队列中。并等待队列中操作全部完成.转载 2014-07-02 20:47:16 · 762 阅读 · 0 评论 -
GCD 学习(八)dispatch_semaphore
dispatch_semaphore 信号量基于计数器的一种多线程同步机制。在多个线程访问共有资源时候,会因为多线程的特性而引发数据出错的问题。dispatch_queue_t queue = dispatch_get_global_queue(0, 0); dispatch_semaphore_t semaphore = dispatch_semaphore_create(1);转载 2014-07-02 20:50:49 · 630 阅读 · 0 评论