了解同步和异步操作

时间:2014-06-22 13:37:36

标签: ios iphone multithreading nsthread nsoperationqueue

我正在学习如何进行同步和异步操作。请纠正我提到/学到的是正确的:

  1. 同步和asyn操作可以通过以下方式完成(我们可以根据我们的要求选择)

    • GCD
    • NSThread
    • NSOperationQueue-添加NSOperation
  2. 2。 GCD是一个C API,除此之外 - NSThread和NSOperationQueue,NSOperation写的

    3。 NSOperation只不过是一个包含大量任务的线程。和main()一样是Thread。如果有人写了创建线程,这也意味着创建自定义nsoperation

    4。 NSConnectionurl,AFNetwork在这些GCD,NSThread,NSOperationQueue,NSOperation

    之上

1 个答案:

答案 0 :(得分:1)

请在下面找到我的内联回复。

1)同步和异步操作可以通过以下方式完成(我们可以根据我们的要求选择)

GCD NSThread NSOperationQueue-添加NSOperation

  • 您的理解是正确的,除了一些修改并向NSOperatonQueue添加更多信息。

  • 即使自定义操作的实现是同步的,通过将其添加到操作队列,转换为异步操作。

  • 如果自定义操作以同步方式实现,则调用start方法以同步方式工作 - 它使用当前线程执行自己的任务。

2。 GCD是一个C API,除此之外 - NSThread和NSOperationQueue,NSOperation写的

  • 根据我的理解,NSOperaton是在GCD之上实现的,而不是NSThread。

3。 NSOperation只不过是一个包含大量任务的线程。和main()一样是Thread。如果有人写了创建线程,这也意味着创建自定义nsoperation

  • 自定义操作要么在自己的线程中执行任务,要么在单独的线程中执行。它与实现自定义操作不同。

    a)以同步方式实现的自定义操作,即不在start方法中创建一个线程来调用main方法。它执行当前线程中的操作任务,调用操作启动方法。

但是,同一个同步自定义操作,通过将其添加到操作队列,在单独的线程中执行其任务。由操作队列创建的单独线程。

b)自定义操作以异步方式实现,即在单独的线程中执行其任务。

4。 NSConnectionurl,AFNetwork在这些GCD,NSThread,NSOperationQueue,NSOperation

之上
  • 没有想法。