【发布时间】:2009-12-10 20:43:29
【问题描述】:
【问题讨论】:
标签: c++ iphone windows linux multithreading
【问题讨论】:
标签: c++ iphone windows linux multithreading
Boost 线程实际上是事实上的 C++ 线程标准。我建议您至少熟悉一下 Boost 线程 API,因为它或多或少与即将推出的标准化 C++0x std::thread 相同。
【讨论】:
FWIW,我不认为所有这些都是完全等价的。
ACE、Boost、Poco 和 QT 只是底层支持的线程平台的封装。在我看来,OpenMP 尤其是 TBB 在更高的抽象级别上运行,并鼓励以不同的方式看待问题。
【讨论】:
我还要加上最近移植到 iPhone 上的 POCO:
【讨论】:
qt 支持多线程...
【讨论】:
您可以使用 pthread 并实现自己的 C++ 包装器。那将是非常灵活和可移植的,并且您可以以适合您的方式定义 C++ 接口。但是,您可能需要付出更多的努力。
【讨论】:
对于您问题的第二部分:
将 C++ 集成到 Objective-C 中非常容易;我毫无问题地向我的应用程序添加了一个 C++ 库。您不使用任何特殊语法或任何东西。 Apple 有一些关于 Objective-C++ 的good info,但你必须已经了解 Objective-C 才能理解它。
警告:要制作 iPhone 应用程序,您必须了解基本的 Objective-C;至少这是控制界面的唯一方法。
【讨论】:
Boost.Thread 很棒.. 但不确定它是否适用于 iPhone。如果你的目标是 iPhone,你应该只使用NSThread 类,特别是它的detatchNewThreadSelector 函数来生成一个新线程。您可以使用performSelectorOnMainThread 函数在 UI 事件线程中执行工作。
在 iPhone 上使用 C++ 的问题是 iPhone 目前不支持 C++ 异常(它支持 Objective-C 使用的“SJLJ”异常,但不支持标准 C++ 异常),这意味着任何 C++ 代码使用 C++ 异常处理将无法在 iPhone 上链接。
【讨论】: