是否有针对ruby的“标准”读/写锁实现?

时间:2009-01-19 17:57:50

标签: ruby multithreading concurrency locking

有没有人知道读/写锁的现有ruby实现 - http://en.wikipedia.org/wiki/Readers-writer_lock

最好是在一个受欢迎的图书馆或其他一些已经被足够的人使用的实施方案,以至于它在这一点上相当无懈可击。

3 个答案:

答案 0 :(得分:3)

据我所知,没有标准的,但写起来并不是很难。如果不这样做,this guy已经写了一个。看起来很正确,他提供了测试。

答案 1 :(得分:1)

Jonas博客中的链接现已破损,但我已经构建并测试了另一个实现,欢迎任何想要使用它的人:

https://github.com/alexdowad/showcase/blob/master/ruby-threads/read_write_lock.rb

答案 2 :(得分:0)

concurrent-ruby gem中,您会找到Concurrent::ReadWriteLockConcurrent::ReentrantReadWriteLock

lock = Concurrent::ReadWriteLock.new
lock.with_read_lock  { data.retrieve }
lock.with_write_lock { data.modify! }