有一个返回int的函数如何使用boost在单独的线程中运行它?

时间:2010-12-07 18:38:14

标签: c++ multithreading boost

我知道它看起来没有必要,但我希望它能帮助我找到内存泄漏。 所以在返回int的类中有一个函数,如何从该类的另一个函数调用它(调用它以便返回int的函数将在另一个线程中运行)?

3 个答案:

答案 0 :(得分:2)

您是试图通过从另一个线程调用函数来查找函数中的内存泄漏?这就像试图通过在堆栈中添加更多干草来在大海捞针中找到一根针。

答案 1 :(得分:2)

线程编程101:

  1. 产生一个调用新函数(“foo”)的新线程(“thread2”)。
  2. 在生成后立即将原始线程连接到thread2。
  3. 读取foo()已将其最终值写入的全局变量。
  4. 请注意,foo()无法将其值返回到原始线程;它必须将值写入某个共享内存(即全局变量)。另请注意,这不会解决您的内存泄漏问题,甚至无法明确内存泄漏的来源。

    使用Valgrind查找内存泄漏。并阅读有关多线程的书籍或教程。

答案 2 :(得分:1)

操作系统不会回收工作线程中的内存泄漏。这不是它的工作原理。

修复你的错误。世界上不需要任何更糟糕的软件。