首页 > 代码库 > iOS_多线程_GCD
iOS_多线程_GCD
1、GCD串行队列+异步dispatch说明:非常非常非常有用的操作异步,表示会在主线程之外开新的线程,但由于 队列是串行的,故只开一个(只开一个)新的线程当dispatch分派好block之后,主线程立即返回,继续向下执行串行队列,表示:被分派到此队列的block们,将FIFO有序地一个接一个执行dispatch_async说明:立即返回,从不等待,队列决定是serially还是concurrently,block_copy(),block_release()
程序运行结果输出:可以看到:串行队列+异步方式向队列添加block,只会新开一个线程,所有被添加的block在新开的线程里,愉快而有序地执行
2、GCD串行队列+同步dispatch (极少使用)同步表示:不会开新线程,就在主线程上运行串行表示:所有block一个接一个运行
3、并行队列+异步dispatch(容易失控)开多条新线程(具体开几个无法控制),block执行没有顺序,程序员无法控制执行顺序
4、并发队列+同步dispatch关键:因为同步,则不会开新线程,直接使用主线程,
虽然是并发队列,但由于可有一个执行路线,所以会顺序执行
5、发散思维--->串行队列先同步dispatch十个block,再异步dispatch十个block既然是同步分派:就是在主线程上执行,完毕后,再异步分派:开新线程,由于队列是串行,故,只会开一条新线程,一个接一个愉快地执行
6、发散思维--->并行队列中,先同步分派10个block,再异步分派10个blcok只要是同步dispatch,就只会在主线程上运行再异步分派,就一定会开新线程,由于是并行队列:故会开N条新线程,N数量不可控制,block们的执行顺序也不可控制
开多条新线程(具体开几个无法控制),block执行没有顺序,程序员无法控制执行顺序
关键:因为同步,则不会开新线程,直接使用主线程,
虽然是并发队列,但由于可有一个执行路线,所以会顺序执行
iOS_多线程_GCD
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。