![]() |
1
5
听起来你在找 readers-/writer-lock . 这是一个锁,可用于让许多线程读取数据结构,但当一个线程具有写访问权限时,所有其他线程都被锁定。 Boost提供了 implementation . |
![]() |
2
0
你在窗户上吗? 如果是,则可以使用事件或互斥对象等同步对象。 对于insert和delete,可以在这些函数的开头锁定互斥锁,在函数的结尾释放互斥锁。 步骤如下。
读取不需要获取锁。所以不需要事件或互斥来读取。多个线程可以从共享缓冲区并发读取。 你可以在 http://en.wikipedia.org/wiki/Readers-writer_lock 你可以在 http://msdn.microsoft.com/en-us/library/ms686915(v=VS.85).aspx |
![]() |
3
0
听起来像是一个香草读者作家锁不完全是你想要的。一旦您尝试获取锁的writer端,其他读卡器将阻塞,直到writer完成,而您说您希望执行读操作的其他线程获得访问权限,即使存在挂起的插入。 我不确定你想要的是不是安全。如果正在进行足够的读取,则插入/删除可能会永远阻塞。 如果你真的想这样做,你可以很容易地自己构建它,就像你可以很容易地在标准互斥锁之上构建一个读写锁一样。 请注意,这段代码可能已损坏,但可能会给您一个大致的概念。
一个典型的reader/writer锁的工作原理与此类似,只是有一个标志阻止读者在writer等待时获取锁。 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |