有誰知道現有的紅寶石實現讀/寫鎖 - 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