在结构 C 中锁定 pthread_mutex_t

Lock pthread_mutex_t in structure C

我在结构中有一个 pthread_mutex_t 锁,我创建了 2 个结构。

  1. 那些是同一把锁吗?或者它们是完全不同的锁?
  2. 我有一个函数使用了结构体的锁,一个结构体是否可以检测到另一个结构体是否使用了锁体?

are those the same lock?Or are they completly different lock?

这取决于,如果你有一个指针,你可以在两个结构中使用相同的互斥锁,如果没有,它们是副本,使用一个不会反映另一个。

I have a function that uses the lock of the structure, can the one structure detect if the other structure lock is used?

同样,如果它是指向同一个互斥量的指针,它被两个结构共享,lock/unlock 被两个结构检测到,如果没有检测到,锁定或解锁一个将不会影响另一个。

锁与 int 或结构的任何其他成员没有区别。

问:我在一个结构中有一个 int,我创建了 2 个结构。它们是相同的整数吗?
答:不,他们不是。每个结构都有自己的整数。

问:我有一个函数使用了一个结构体的int,一个结构体能否检测到是否使用了另一个结构体的int?
A: 不可以,因为每个结构都有自己的int。

如果我希望所有结构共享一个 int,我可以将其设为全局变量。