【发布时间】:2010-11-01 12:47:16
【问题描述】:
我可以使用初始化器在静态内存中初始化互斥锁:
pthread_mutex_t mymutex = PTHREAD_MUTEX_INITIALIZER;
但是如何在共享内存中初始化一个,我必须与初始化变量分开分配内存?我可以做一个 memcpy() 吗?
pthread_mutex_t mymutex = PTHREAD_MUTEX_INITIALIZER;
memcpy(&globalmutex, &mymutex, sizeof(mymutex);
我想我记得很久以前读过,当将互斥锁分配到保证初始化为零的内存中时,它不需要初始化——正是为了这种情况——但我找不到写下来的任何地方。这是真的吗?--我注意到 PTHREAD_MUTEX_INITIALIZER 在我的 redhat 系统上被定义为 { { 0, 0, 0, 0, 0, 0, { 0, 0 } } }。
【问题讨论】:
标签: mutex shared-memory