有谁知道现有的红宝石实现读/写锁 - http://en.wikipedia.org/wiki/Readers-writer_lock?是否有针对ruby的'标准'读/写锁定实现?
最好这是在一个流行的库或其他一些已被足够多的人使用的实现中,在这一点上它是相当防弹的。
有谁知道现有的红宝石实现读/写锁 - http://en.wikipedia.org/wiki/Readers-writer_lock?是否有针对ruby的'标准'读/写锁定实现?
最好这是在一个流行的库或其他一些已被足够多的人使用的实现中,在这一点上它是相当防弹的。
对我而言,没有一个标准的,但他们不是很难写。如果没有,this guy已经写了一个。它看起来是正确的,他提供了测试。
在乔纳斯的博客链接现在坏了,但我已经建造并测试另一个执行,谁想要使用它任何人都欢迎:
https://github.com/alexdowad/showcase/blob/master/ruby-threads/read_write_lock.rb
在concurrent-ruby
宝石你发现Concurrent::ReadWriteLock
和Concurrent::ReentrantReadWriteLock
。
lock = Concurrent::ReadWriteLock.new
lock.with_read_lock { data.retrieve }
lock.with_write_lock { data.modify! }
请注意,您必须首先安装来自Charles Nutter和MentaLGuY的优秀“原子”宝石! – 2012-02-23 14:15:39