GCD中的串行,并行,同步,异步详解

gcd中的串行,并行,同步,异步详解


1、gcd中同步与异步的区别:

gcd中的线程是由一个线程池来管理的,这个池中存放的是一个个的线程。之所以称为“池”,很容易理解出这个“池”中的线程是可以重用的。

如果任务是线程同步的,那么会等待当前线程执行完毕之后,再从池子中拿出一条线程。所以同步的过程中只有一条线程执行任务。

如果任务是线程异步的,队列中的任务不需等待当前任务执行完毕就可以调度下一个任务,这时底层线程池中会再次提供一个线程供第二个任务执行,执行完毕后再回到底层线程池中。

总结:

串行同步:任务按顺序执行,整个过程只会开一条线程。

串行异步:任务按顺序执行,因为是串行所以也只会开一条线程。

并行同步:任务不按顺序执行,整个过程只开一条线程。

并行异步:任务不按顺序执行,整个过程可能有多条线程。

为了提高效率建议最多开3~5条并发线程。

你可能感兴趣的:(GCD中的串行,并行,同步,异步详解)