Написал простой тест:
#include <iostream>
#include <boost/thread.hpp>
using namespace std;
void myThreadRun() {
cout << "Thread id: " << boost::this_thread::get_id() << "\n";
}
int main() {
for (int i = 0; i < 10000; i++) {
boost::thread t(myThreadRun);
t.join();
}
return 0;
}
на котором Valgrind Massif показывает следующий график:
(Профилирование стека включено. Платформа: Linux Ubuntu x86).
У этой программы фактически нет утечек памяти: использование памяти стабильно.
Интересно: это проблема Valgrind или boost:: thread? Или, может быть, я что-то неправильно понял?
Как вы это объясните?