2013-03-26 28 views
6

Khi tĩnh khởi tạo một mutex đệ quy, sự khác biệt giữaSự khác nhau giữa PTHREAD_RECURSIVE_MUTEX_INITIALIZER và PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP là gì?

static pthread_mutex_t foo_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER; 

static pthread_mutex_t foo_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; 

và tại sao tôi nên muốn một thay vì người kia là gì?

+0

Bạn có chắc chắn 'PTHREAD_RECURSIVE_MUTEX_INITIALIZER' tồn tại không? Đã không tìm thấy bất cứ điều gì về nó ?? –

+0

Thật vậy, trên hệ thống Linux Ubuntu của tôi, tệp '/ usr/include/pthread.h' của tôi không xác định phiên bản không có' _NP'. Nhưng ở đây chẳng hạn, nó được định nghĩa: https://android.googlesource.com/platform/prebuilts/ndk/+/5b02cc4c4e80fd6a9ee30e0ad4642122e08a007b/android-ndk-r7/platforms/android-14/arch-x86/usr/include/pthread .h tại dòng 46. –

+0

Vâng, sau đó nó có vẻ là phụ thuộc thực hiện. –

Trả lời

6

"_NP" có nghĩa là gợi ý rằng đối tượng địa lý không thể di chuyển được. Để giữ gợi ý ở đó, bạn nên sử dụng phiên bản "_NP".

Khác với điều tôi nghi ngờ không có sự khác biệt. Tuy nhiên, không chắc chắn 100%.

Các vấn đề liên quan