Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

说下GCD任务和队列组成的四种组合的情况 #78

Open
tbfungeek opened this issue Feb 13, 2020 · 0 comments
Open

说下GCD任务和队列组成的四种组合的情况 #78

tbfungeek opened this issue Feb 13, 2020 · 0 comments

Comments

@tbfungeek
Copy link
Owner

GCD中任务可以分成同步任务异步任务,队列可以分成串行队列并行队列,所以二者的组合会有四种:

  • 同步串行:
    这种不会创建新的线程,任务执行还是在当前线程中,串行执行,但是这种情况需要注意的是不能往任务分发队列所处的队列发送任务。这种情况会造成死循环。

  • 同步并行:
    这种情况下没有开启新的线程,并且任务也是一个个运行的。虽然并发队列可以开启多个线程同时执行多个任务。但是因为同步任务不具备开启新线程的能力,只有当前线程这一个线程,所以也就不存在并发。而且同步任务需要等待队列的任务执行结束之后,才能继续接着执行下面的操作,所以任务只能一个接一个按顺序执行,不能同时执行。

  • 异步串行:
    这种情况只会生成一个线程,同一个队列的任务在同一个线程执行。

  • 异步并行:
    这种情况下可开启多个线程,同时执行多个任务,但是这种由于任务并行的顺序不确定性,会很容易出错。

0006

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant