PTHREAD_MUTEX_INITIALIZER http://blog.csdn.net/yasi_xi/article/details/19197203

 

多个用 PTHREAD_MUTEX_INITIALIZER 初始化的 pthread_mutex_t 不是同一个 mutex

  453人阅读  评论(0)  收藏  举报

参考:http://stackoverflow.com/questions/6310746/initializing-pthread-mutexes


【结论】

[cpp]  view plain copy
  1. static pthread_mutex_t m0 = PTHREAD_MUTEX_INITIALIZER;  
  2. static pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER;  
  3. static pthread_mutex_t m2 = PTHREAD_MUTEX_INITIALIZER;  

像这样初始化的3个 pthread_mutex_t,并不是同一个 mutex,即在使用时,相互不影响。


【说明】


[cpp]  view plain copy
  1. static pthread_mutex_t m0 = {0x32AAABA7, {0}};  
  2. static pthread_mutex_t m1 = {0x32AAABA7, {0}};  
  3. static pthread_mutex_t m2 = {0x32AAABA7, {0}};  

尽管通过 gcc -E code.cpp,看似初始化成同样的东西,但

[plain]  view plain copy
  1. It is essentially an enum value, but with a 

你可能感兴趣的:(PTHREAD_MUTEX_INITIALIZER http://blog.csdn.net/yasi_xi/article/details/19197203)