在结构 C 中锁定 pthread_mutex_t
Lock pthread_mutex_t in structure C
我在结构中有一个 pthread_mutex_t
锁,我创建了 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,我可以将其设为全局变量。
我在结构中有一个 pthread_mutex_t
锁,我创建了 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,我可以将其设为全局变量。