Memory 不带mmap的pthread互斥锁是否可能?

Memory 不带mmap的pthread互斥锁是否可能?,memory,pthreads,fork,parent,mmap,Memory,Pthreads,Fork,Parent,Mmap,在linux上使用写时拷贝分叉。在父级中创建pthread进程间互斥体时,它在子级中有效还是只有在我将其映射到共享内存中时才有效?调用fork()时,整个内存空间都是重复的,包括互斥体,因此为了回答您的问题,新的互斥体将是父级互斥体的副本,所以你必须mmapit 注: 您需要使用PTHREAD\u mutexattr\u getpshared()在mutex属性上设置PTHREAD\u PROCESS\u SHARED标志 但它的工作方式是否与复制并映射到同一系统资源的文件或套接字描述符类似?或

在linux上使用写时拷贝分叉。在父级中创建pthread进程间互斥体时,它在子级中有效还是只有在我将其映射到共享内存中时才有效?

调用
fork()
时,整个内存空间都是重复的,包括互斥体,因此为了回答您的问题,新的互斥体将是父级互斥体的副本,所以你必须
mmap
it

注:
您需要使用
PTHREAD\u mutexattr\u getpshared()
在mutex属性上设置
PTHREAD\u PROCESS\u SHARED
标志

但它的工作方式是否与复制并映射到同一系统资源的文件或套接字描述符类似?或者pthread互斥锁后面没有内核资源?这是用户空间中数据/代码的和平?从实现角度看,我不确定,但看起来肯定只是一些重复的数据。因此,结论是两个进程都需要访问相同的互斥锁,而不是单独的副本。