传递类和索引时在C++中创建线程的最佳技术是什么?

Mik*_*ike 3 c++ pthreads

我正在使用pthreads和C++创建一个数据并行程序.从一个类的pthread函数,我发现了如何提供pthread_create一个指向静态C++函数的函数指针(并为它提供一个this参数).

但是,我还需要为线程提供索引,因此它知道它正在处理什么数据.我可以malloc为每个线程提供一个结构(包含指向C++类和索引的指针),但这似乎会添加一些簿记代码,如果没有释放结构,可能会导致泄漏.有一个更好的方法吗?

Chr*_*ung 7

你可以使用Boost.Thread.它为您提供了一种类型安全的方法,可以将多个参数传递给您的callable.

是的,它有与您提出的问题类似的簿记,但它使用C++机制来确保它不会泄漏.