objective-c - 同步操作(例如 stringFromURL)是否会被其他线程抢占?

标签 objective-c cocoa-touch cocoa

我仍在尝试使用后台线程来获取数据。我不希望我的线程在被调用的方法结束时终止,因此看起来后台线程中的异步操作是错误的方法。但是,只有当该获取可以被抢占时,使用同步获取才有意义,以便主运行循环可以在等待来自服务器的数据时执行。

有人可以帮我解决这个问题吗?我想更好地理解它,即使您可能建议使用网络库来隐藏所有这些复杂性。

最佳答案

  1. 主线程当然会在其他线程上的同步方法期间执行,此外,当需要最大性能时,例如,它可以暂停后台线程上的执行方法。滚动时。
  2. 异步方法更可取,因为它们可以更好地控制您的操作。它们可以从主线程或后台线程调用。
  3. 还可以考虑使用 GCD 和操作队列,请参阅 Concurrency Programming Guide以供引用。

关于objective-c - 同步操作(例如 stringFromURL)是否会被其他线程抢占?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9296420/

相关文章:

iphone - 检查自定义对象数组是否包含具有特定日期的对象

ios - 动画子类无法正确应用于我的 View 动画

iphone - 为什么我应该在应用程序退出之前释放(并因此释放)对象?

cocoa - NSTableView: float (或固定)列

objective-c - iPhone iOS UILabel 如何仅自定义 UITableView 详细文本标签的文本颜色?

iphone - 构建成功但没有显示模拟器

iOS8 - 如何在 iOS 8 中更改长按手势的灵敏度

cocoa - 以编程方式设置 NSTextField 的文本

macos - NSTableView – 在编辑结束后通过单击不同的行来选择单击的行

iphone - 方法委托(delegate)没有被调用