C 多线程 : What is the advantage of a Read Lock (pthread_rwlock_rdlock) if all threads can access it simultaneously?

标签 c multithreading synchronization

我对这个线程问题一窍不通:\

我想象 Write Lock 的行为类似于等待全局变量确认的 while。喜欢:

/* pthread_rwlock_wrlock */

    while (is_blocked) {
        /* waiting */
    }
    is_blocked = true;

    (writing code...)

/* pthread_rwlock_unlock */
    is_blocked = false;

这样对吗? Read Lock 是如何工作的?如果共享,为什么要使用?

信息:

pthread_rwlock_rdlock() – 获取共享读锁

pthread_rwlock_wrlock() – 获得独占写锁

最佳答案

读锁的目的是阻止写入。

  • 如果没有写入锁读取器可以获得锁定。
  • 如果根本没有锁作者可以获得锁。

两者都没有简单的实现,一个 你为
建议的例子有一个竞争条件, 有时会失败。

关于C 多线程 : What is the advantage of a Read Lock (pthread_rwlock_rdlock) if all threads can access it simultaneously?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42252035/

相关文章:

c - FD_SETSIZE 与计算值

c - 展开链表比链表好在哪里?

javascript - 如何用Javascript实现UML同步栏?

java - 是否可以通过Java中的NTP客户端同步系统时钟?

c++ - d2d1debug3.dll!DebugRenderTarget::EndDraw 访问冲突

java - Android Thread Concourrency UI线程编辑一个变量,其他线程读取相同的变量

c - EOF 宏如何与 getchar 一起使用?

c - 为什么我的套接字接口(interface)停止注册 select() 调用?

ios - 如何在合并更改时打破 Core Data 多线程保留周期?

c# - 如何确保测试启动的所有线程在完成前都已停止