多线程之GCD

来源:互联网 发布:硕鼠for mac 编辑:程序博客网 时间:2024/04/29 10:13

在之前提到的多线程中, GCD的应用是非常广泛的, GCD分为serial和Concurrent


GCD: Grand Central Dispatch,是一套低层API,提供了一种新的方法来进行并发程序编写, 因为GCD是基于C的, 相比于NSOperationQueue更加的底层和高效



(1) 

- (void)createSerial

{

// 创建一个同步线程队列

dispatch_queue_t_create("one", DISPATCH_QUEUE_SERIAL);// 标记是同步线程队列

dispathch_async(queue, ^{

// 相对于主线程, 是异步执行同步线程队列, 针对于UI显示, 需要放在主线程上显示, 因此, 如果加载一张图片显示在界面上的话, 我们应该使加载图片过程在主线程上完成即:

dispatch_async(dispatch_get_main_queue(), ^{

self.image = aImage;

})


})

- (void)createConcurrent

{

dispathch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),^{

// 一些在主线程完成的功能要返回主线程, 需要在下面写

dispatch_async(dispatch_get_main_queue(), ^{

})



})


}


多线程使用与注意事项:

虽然现在大部分PC应用程序都支持多线程/多任务的开发方式,但是在iPhone上,Apple并不推荐使用多线程的编程方式。但是多线程编程毕竟是发展的趋势,而且据说即将推出的iPhone OS4将全面支持多线程的处理方式。所以说掌握多线程的编程方式,在某些场合一定能挖掘出iPhone的更大潜力。async表明异步运行,block代表的是你要做的事情,queue则是你把任务交给谁来处理了

通过自己的浅薄认识, GCD的使用起来是比较简单的, 因此我们把注意放在GCD上, 会使我们更好的开发出体验更好的程序


0 0
原创粉丝点击