为什么我们需要在iOS上同步?

时间:2013-01-08 02:42:01

标签: grand-central-dispatch synchronous

实际上,同步和异步连接之间的唯一区别是运行时将为异步连接创建一个线程,而不会为同步连接做这样的事情。

在这种情况下,同步在当前线程中运行,为什么我们仍然需要同步?同步代码和普通代码有什么区别?

2 个答案:

答案 0 :(得分:1)

同步调用会停止当前操作,并在调用返回时返回。使用异步调用,您可以继续(例如构建用户界面)并在结果可用后读取结果。异步通常更复杂,因此它取决于任务,这是首选的解决方案。

答案 1 :(得分:0)

如果API公开同步方法,通常是因为线程处理可以由用户完成,或者至少这样做有好处。异步连接很适合在你的主线程上使用以避免阻塞用户界面,但是如果你已经在后台线程上,那么为你的操作生成另一个线程因为创建线程并不便宜,所以请注意阻塞是浪费资源。此外,异步API需要更多的开发人员来控制逻辑流程。

正如AlexWien所说,同步与异步代码相反,因此是普通代码