Quelqu'un sait-il d'une implémentation de ruby existante d'un verrou en lecture/écriture - http://en.wikipedia.org/wiki/Readers-writer_lock? De préférence, il s'agirait d'une bibliothèque populaire ou d'une autre mise en œuvre qui a été utilisée par un nombre suffisant de personnes pour être assez à l'abri des balles à ce stade.Existe-t-il une implémentation de verrou de lecture/écriture 'standard' pour ruby?
3
A
Répondre
3
Il n'y en a pas à ma connaissance, mais ils ne sont pas très difficiles à écrire. A défaut, this guy a déjà écrit un. Il a l'air juste et il a fourni des tests.
1
Le lien dans le blog de Jonas est maintenant cassé, mais j'ai construit et testé une autre mise en œuvre, et tous ceux qui veulent l'utiliser est la bienvenue à:
https://github.com/alexdowad/showcase/blob/master/ruby-threads/read_write_lock.rb
0
Dans concurrent-ruby
gem vous trouvez Concurrent::ReadWriteLock
et Concurrent::ReentrantReadWriteLock
.
lock = Concurrent::ReadWriteLock.new
lock.with_read_lock { data.retrieve }
lock.with_write_lock { data.modify! }
Veuillez noter que vous devez d'abord installer l'excellente gemme «atomique» de Charles Nutter et MeNTaLGuY! –