c - 使用 pthreads 读取临界区数据

标签 c multithreading pthreads

我有一个多线程应用程序,我正在使用带有 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/

相关文章:

读内存会不会出现segmentation fault?

java - 需要有关具有到期时间限制的 hashMap 的帮助

C++11 Shared_ptr 和 pthread

线程池可以运行在单线程函数上吗?

c - 使用 realloc 缩小内存分配

c - 如何使 valgrind 仅报告与规则匹配的错误

c++ - 使用指针线程化共享模型

c# - 为什么这段代码总是得到 SynchronizationLockException?

linux - shmget() 返回带有 IPC_CREAT 的 ENOENT

C5029 (E) 需要一个表达式