November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Chcemy, aby w określonym czasie obiekt był dostępny tylko dla jednego wątku.
W obiekcie opisującym wątek należy zdefiniować składową Mutex (semafor wskazujący wątek, który w określonym momencie powinien mieć dostęp do obiektu). Można go wykorzystać do synchronizacji operacji z obiektem.
W poniższym kodzie dla każdego obiektu zdefiniowano metodę synchronize. Jest to symulacja działania Javy, gdzie synchronize jest słowem kluczowym, które można stosować do wszystkich obiektów:
require 'thread'
class Object
def synchronize
mutex.synchronize { yield self }
end
def mutex
@mutex ||= Mutex.new
end
end
Oto przykład: pierwszy wątek ustanawia blokadę dla listy, a następnie zatrzymuje ...
Read now
Unlock full access