Objective C的类COM公寓线程模型

时间:2012-07-11 17:42:36

标签: objective-c multithreading

具有一些WinAPI背景的ObjectiveC大师的问题:

ObjectiveC中是否支持类似COM的公寓线程模型?

  • A类是单线程:A类的所有对象都是在一个特定线程中创建的,并且所有消息处理程序都在该线程中调用
  • B类是多线程:B类的对象可以在任何调用者线程中创建,并且所有消息处理程序仅在用于创建对象的原始线程中调用
  • C类自由线程:可以在任何调用者线程中创建C类对象,可以在任何线程中调用消息处理程序

我的想法是:由于ObjectiveC是关于消息的,因此可以轻松实现COM +之类的多线程。或者不是?

谢谢

1 个答案:

答案 0 :(得分:1)

您的问题所定义的单线程或多线程对象没有内置支持。

在Mac OS X或iOS应用中,您可能希望使用GCD队列自行执行这些策略。我推荐WWDC 2011 videos名为“Block and Grand Central Dispatch in Practice”和“掌握Grand Central Dispatch”,以获得有关应用GCD的一些很好的建议。