【发布时间】:2017-08-04 18:43:08
【问题描述】:
我知道 pthread_mutex_t 的实现有很多,但是,我想知道标准是否足够具体,可以在不同的 pthread 库之间共享 pthread_mutex_t 并使其正常工作。
【问题讨论】:
我知道 pthread_mutex_t 的实现有很多,但是,我想知道标准是否足够具体,可以在不同的 pthread 库之间共享 pthread_mutex_t 并使其正常工作。
【问题讨论】:
不,只有在他们协调兼容性的情况下,我认为没有人这样做。
即使对于一个 C 实现也可能发生这种情况:glibc 跨版本与自身不兼容,并且类型的 32 位和 64 位版本的布局不同。现有二进制文件及其静态初始化程序(PTHREAD_MUTEX_INITIALIZER 及其变体)必须继续工作,但在运行时发生的情况并不固定,并且可能会因错误修复和优化而改变。另一方面,不幸的是,静态初始化程序的兼容性要求很难修复 32 位/64 位差异。
【讨论】: