C-基于线程计算分配共享内存



在多线程程序中,我需要基于并行计算的线程计算的共享内存,然后在所有线程(同步之后(使用该共享存储器。有没有连接线程并产生新线程的方法可以这样做的方法?

为了简化我尝试以下操作:

  1. 16线程估计并行所需的内存大小
  2. 声明估计大小的共享记忆
  3. 线程继续在共享内存上执行

我正在使用pthreads库和pthread_barrier_wait进行多线程。

当然,您已经使用pthread_barrier_wait()在正确的轨道上。将屏障初始化为16,然后具有线程功能:

/* ...Work on estimated memory size... */
if (pthread_barrier_wait(&barrier) == PTHREAD_BARRIER_SERIAL_THREAD)
{
    /* ...Allocate the shared memory... */
}
pthread_barrier_wait(&barrier);
/* ...Continue execution using shared memory... */

线程将在第一个障碍物等待之前等待,直到所有人都完成为止,然后它们中的一个将分配所需的内存,并且它们都将在第二个障碍物中等待,直到记忆被成功分配为止。

最新更新