GCD多线程测试
test | 串行队列 | 并发队列 | 主队列 | global队列 |
---|---|---|---|---|
同步执行(synchronized) | 不开线程(当前线程)、串行执行 | 不开线程(当前线程)、串行执行 | 阻塞(互相等待、形成死锁) | 不开线程(当前线程)、串行执行 |
异步执行 (asynchronized) | 开新线程(1条)、串行执行 | 开新线程(几条GCD决定)、并发执行 | 不开新线程(在主线程)、串行执行 | 开新线程(几条GCD决定)、并发执行 |
小结:
-
同步执行任务
1. 一定不会开启线程,任务是按顺序串行执行
2. 如果在主队列执行任务,会引发死锁,阻塞主线程
-
异步执行任务,,
1. 在主队列中不开启新线程,任务在主线程串行执行
2. 在串行队列中,只开启一条线程,任务在线程中串行执行
3. 在并发队列中(global队列属于并发队列),开启多条线程(具体几条由GCD决定),任务并发执行
网友评论