我正在使用pthread来并行化一些代码。首先,我将它与openmp并行化。这很容易和直截了当。因为我只是私有变量以避免竞争条件。我想在我的pthread代码中做同样的事情。我该怎么办?
答案 0 :(得分:0)
根据您的代码/目的,您可以使用pthread mutex序列化对某些共享资源/值的访问,因此任何时候只有一个线程正在修改它: - pthread_mutex_create / destroy - pthread_mutex_lock / unlock +使资源/值本身易变,以避免编译时间优化 或者您可以使用线程本地值: - pthread_key_create / delete - pthread_setspecific - pthread_getspecific 虽然pthread start_routine中的局部变量可能会为你做同样的事情。