2
我知道有很多pthread_mutex_t的实现,但是,我想知道标准是否足够具体,以便可以在不同的pthread库之间共享pthread_mutex_t并使其正常工作。来自不同库的Posix兼容pthread_mutex_t是否相互兼容?
我知道有很多pthread_mutex_t的实现,但是,我想知道标准是否足够具体,以便可以在不同的pthread库之间共享pthread_mutex_t并使其正常工作。来自不同库的Posix兼容pthread_mutex_t是否相互兼容?
不,只有它们协调兼容性,我不认为有人这样做。
即使对于一个C实现,也可能发生这种情况:glibc与不同版本的本身不兼容,32位和64位版本的类型的布局不同。格式中存在一个约束,即现有二进制文件及其静态初始化程序(PTHREAD_MUTEX_INITIALIZER
及其变体)必须保持正常工作,但运行时发生的情况并不固定,并且可能因错误修复和优化而发生变化。另一方面,不幸的是,静态初始化程序兼容性要求很难修复32位/ 64位差异。