2012-07-18 75 views
1

基本上我需要建立一个应用程序,其中主进程基于某些全局变量的值进行某些操作,辅助线程更新此全局变量(比如每100ms)C++中的多线程应用程序和OpenCV?

您建议使用哪种库opencv,C++和多线程? (窗口)

我听说有

  • OpenMP的
  • 升压
  • 英特尔TBB

你建议哪一个为这个简单的多线程应用程序?

+0

这个问题太模糊,无法得到有意义的答案。另外,在问这里之前,最好先表明你尝试了一些东西。 – Sam 2012-07-18 09:35:26

回答

6

C++支持线程,因为它的最新标准。如果C++ 11是您的选择,我会考虑使用标准库中的std::thread。您可以找到例如here的文档。

语法在我看来非常简单易读(请查看几个例子:mutex,future等)。

+1

虽然新标准是稳固而令人兴奋的,但人们不应该忘记,在编译器提供全面支持之前,通常会有多年的时间间隔。特别是在嵌入式世界。 – Sam 2012-07-18 11:20:05

2

OpenMP可以用于线程。你有用于计算机视觉的OpenCV。 使用OpenMP。 Here's的文档。 希望它有帮助。:)

+0

这是OpenMP命令作为一个单独的线程并行运行一个函数? – dynamic 2012-07-18 09:26:00

+0

您使用#pragma关键字来制作和使用线程。它的所有内容都在我提供的链接中提供,也很容易学习。 :) – 2012-07-18 09:27:17

0

我会建议增强库,因为它有大型社区,你会发现所有可能的解决方案和示例代码。变量传递在Boost线程中比以往更容易。但是,C++ 11与boost有相似的线程功能,但是您需要检查C++ 11的可用性。因此,如果您已经为其他功能安装了boost,请使用boost。否则C++线程是你的出路。