W szczególności klasa GreenPool w wydaniu. Przetestowałem trochę kodu, aby przesłać duże pliki do S3 jako pojedyncze elementy wieloczęściowego pliku. Do tej pory zauważyłem, że użycie eventletu powoduje, że użycie procesora jest znacznie niższe. Po prostu szukam innych zalet i wad dla Eventletów, a nie tylko używania wątków. Dzięki.Jakie są zalety korzystania z modułu Eventlet w pythonie przez moduł wątków?
10
A
Odpowiedz
9
Zasadniczo, zielone nitki Eventletu należy uważać za lekki analog wątków systemu operacyjnego dla wszystkich praktycznych zastosowań. Zalety:
- tańsze tworzenie pod względem procesora, pamięci i syscalli (0)
- tańsze zwrotnicy; jest to szczególnie prawdziwe w Pythonie 2.x, gdzie każdy wątek aktywnie próbuje przechwycić GIL, co marnuje procesor.
Wady:
- ważne od wielu Green thread działać w jednym wątku OS, gdy syscall (np open (2)), w jednej z nich blokuje wątku OS, wszystkie zielone wątków są również zablokowane.
- bez SMP (multicpu/multicore); ale z GIL dotyczy to również wątków systemu operacyjnego w Pythonie. Z greenletem [1] to ograniczenie jest bardziej ścisłe, ponieważ nie jest możliwe, aby niektóre rozszerzenia C wypuściły GIL, aby umożliwić kontynuację innych zielonych wątków.
Można również znaleźć tę odpowiedź za przydatne: Is a greenthread equal to a "real" thread
[1] "trzech" biblioteki używane przez Eventlet https://github.com/python-greenlet/greenlet