2016-04-25 35 views
7

Sto provando a creare un framework GUI con un ciclo di eventi. alcuni thread per gestire l'interfaccia utente e alcuni per la gestione degli eventi. Ho cercato un po 'e ho trovato queste tre librerie e mi chiedo quale sia meglio usare? quali sono i pro e i contro?Eventlet vs Greenlet vs gevent?

ho potuto utilizzare uno di questi tre biblioteca o addirittura creare creare qualcosa per me stesso utilizzando python discussioni o concomitante biblioteca.

Apprezzerei condividere qualsiasi tipo di esperienza, benchmark e confronto.

+1

leggere questo post del blog con molta attenzione potrebbe aiutare https://blog.gevent.org/2010/02/27/why-gevent/ –

risposta

7
  • Non si vuole assolutamente il greenlet per questo scopo, perché è una libreria di basso livello in cima alla quale è possibile creare librerie di filo leggero (come Eventlet e Gevent).
  • Eventlet, Gevent e altre librerie simili forniscono un set di strumenti eccellente per le attività legate all'IO (in attesa di lettura/scrittura su file, rete).
  • Probabilmente, la maggior parte del codice della GUI attenderà che finiscano altri thread (a questo punto il thread verde/light/OS è irrilevante), che è un obiettivo perfetto per le librerie sopra menzionate.
  • Tutte le librerie di thread verdi sono principalmente le stesse. Prova tutto e decidi quale si adatta meglio al tuo progetto.
  • Ma è anche possibile che sia necessario estrarre alcune cose in un thread SO separato a causa dei requisiti del livello della GUI del livello OS.
  • Considerando che e una migliore implementazione del thread lock in Python3 potresti voler semplicemente rimanere con il modulo nativo threading se la tua applicazione non ha bisogno di centinaia o più thread.