我有一个多线程应用程序,我正在使用带有 pthread_mutex_lock 函数的 pthreads。我需要保护的唯一数据是在一个数据结构中。如果仅在写入数据结构时应用锁是否安全?还是应该在读取或写入时应用锁定?
我发现了一个与此类似的问题,但它是针对 Windows 的,从那个问题来看,我的答案是可以。只是想确定一下。
编辑
跟进:所以我想传入一个命令行参数并从中读取(从不同的线程)。我还需要使用 pthread_mutex_lock 吗?
最佳答案
你可以使用 pthreads_rwlock_t
允许“one-writer OR N-readers”并发。但是,如果您坚持使用一般的 pthread_mutex_lock
,则需要获取它才能访问它所保护的共享数据结构,因此您正在将事情减少到“一个读取器或写入器”并发。
关于c - 使用 pthreads 读取临界区数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1455377/