Sto avendo un po 'di difficoltà a capire le differenze tra questi tre quadri:Tornado/intrecciata - Sedano - Gevent Confronto
Questi tre framework possono essere utilizzati per eseguire il codice allo stesso tempo, ma farlo in modo diverso usando una quantità diversa di thread/processi o codestyle. Questo è come sto capire le differenze in questo momento:
- Tornado/intrecciata utilizzare il codice asincrono comandato da un loop di I/O. Ciò consente di eseguire il codice su un singolo thread (più thread sono inutili perché se si dispone di codice non bloccante non è necessario)
- Celery utilizza un sistema basato su attività per eseguire il codice in modo asincrono, il codice in sé è ancora sincrono. Esiste un processo principale che è in grado di distribuire le diverse attività tra altri lavoratori su diversi processi.
- Gevent utilizza un sistema basato su thread e genera una discussione per elaborare connessioni in entrata diverse.
le domande che sto avendo in questo momento sono:
- è la mia comprensione di questi quadri sono corretti?
- La principale differenza tra un thread e un processo è che thread diversi utilizzano la stessa memoria mentre i processi no. Un processo normalmente viene eseguito su un server core? (E rendendo così Sedano difficile da implementare su un piccolo server)
- Se stiamo parlando di applicazioni web e prese:
Tornado/ritorto sono in grado di accettare la (quasi) qualsiasi quantità di prese, perché usano codice asincrono e accodano la richiesta nel ciclo I/O.
Sono Sedano/Gevent in grado di questo? Devono generare un nuovo processo/thread per essere in grado di accettare un nuovo socket?
Sto cercando di capire quale di queste tecnologie è più adatta per creare un'applicazione web in tempo reale.
Sarebbe bello aggiungere Asyncio a questa domanda e ottenere alcune risposte confrontandolo con gli altri. – chuseuiti