2011-12-24 11 views
15

Jaka jest różnica między multiprocessing.Event a multiprocessing.managers.SyncManager.Event. Kiedy używam każdego? Dlaczego istnieją dwa różne obiekty?python: multiprocessing Zdarzenie

samo pytanie do innych podobnych obiektów istniejących w multiprocessing bezpośrednio, a także w Manager (Lock itp)

Odpowiedz

11

Niestety, tylko dana odpowiedź nie jest bardzo poprawna, a inni nie została podana.

Sprawdziłem to sam i stwierdziłem, że multiprocessing.Event może być użyte do zsynchronizowania procesów, jest całkowicie w porządku.

Event i inne obiekty z multiprocessing.Manager istnieć, aby móc synchronizować rzeczy pomiędzy procesami, działającą na różnych maszynachpośrednictwem gniazd pod maską. Mogą być również wykorzystywane synchronizacji na jednej maszynie, ale mniej wydajne niż po prostu za to z wykorzystaniem obiektów synchronizacji z multiprocessing.synchronize (jak Event i Lock i inne)

+1

Użytkownik może zarządzać użytkownikami na tym samym komputerze, celem jest dostarczenie obiektów proxy, które mogą wchodzić w interakcje z rzeczywistymi udostępnionymi zasobami opublikowanymi za pośrednictwem Menedżera. W pewnym sensie jest to rodzaj "RPC-lite" – edomaur

+0

Czy możesz powiedzieć, gdzie znalazłeś te informacje? – utapyngo

+0

@utapyngo: w sekcji "16.6.1.4 Dzielenie się stanami między procesami", dokument 2.7, zwłaszcza czytana ostatnia część. A także kilka samouczków do nauki i czytania – zaharpopov

1

multiprocessing.Manager jest w istocie wyspecjalizowany proces, który będzie tworzyć instancje Multiprocessing na prymitywów synchronizacji na żądanie we własnej przestrzeni adresowej i umożliwia dostęp do nich za pośrednictwem serwerów proxy RPC. Prymitywy zachowują się tak samo i mają dodatkową elastyczność, że są dostępne ze zdalnych hostów (przy użyciu TCP w obudowie zdalnej).

Powiązane problemy