独立,独立于操作系统,架构中立,多线程库

时间:2009-12-10 20:43:30

标签: c++ iphone windows linux multithreading

哪些多线程C ++库可用于编写Linux,Windows,Solaris和iPhone应用程序?如:

还有其他人吗?

7 个答案:

答案 0 :(得分:4)

Boost线程实际上是事实上的C ++线程标准。我建议至少要熟悉Boost线程API,因为它或多或少与即将推出的标准化C ++ 0x std::thread相同。

答案 1 :(得分:1)

FWIW,我认为所有这些都不完全等同。

ACE,Boost,Poco和QT只是底层支持的线程平台的包装。在我看来,OpenMP尤其是TBB在更高的抽象级别上运行,并鼓励以不同的方式查看问题。

答案 2 :(得分:1)

我还会添加最近移植到iPhone上的POCO:

http://pocoproject.org/blog/?p=208

答案 3 :(得分:0)

qt具有多线程支持......

答案 4 :(得分:0)

您可以使用pthreads并实现自己的C ++包装器。这将是非常灵活和可移植的,您可以按照适合自己的方式定义C ++接口。但是,您可能需要付出更多努力。

答案 5 :(得分:0)

对于你的问题的第二部分:

将C ++集成到Objective-C中非常容易;我在我的应用程序中添加了一个C ++库,没有任何问题。您不使用任何特殊语法或任何东西。 Apple在Objective-C ++上有一些good info,但您必须已经了解Objective-C才能理解它。

警告:要制作iPhone应用,您 了解基本的Objective-C;这是控制界面的唯一方法,至少。

答案 6 :(得分:0)

Boost.Thread很棒..但不确定它是否可以在iPhone上运行。如果您要定位iPhone,则应该使用NSThread类,特别是其detatchNewThreadSelector函数,以便生成新线程。您可以使用performSelectorOnMainThread函数在UI事件线程中执行工作。

在iPhone上使用C ++的问题是iPhone目前不支持C ++异常(它支持Objective-C使用的“SJLJ”异常,但不支持标准C ++异常),这意味着任何C ++代码使用C ++异常处理将无法在iPhone上链接。