Uso la libreria asyncio di Python per creare un server in grado di gestire le richieste telnet. Poiché il loop del server di asyncio è a thread singolo, ho pensato che avrebbe più senso quando asyncio mi ha detto che ho ottenuto dati ( asyncio.Protocol.data_received
) semplicemente per pianificare un'attività, invece di bloccare ulteriori dati finché non ho finito di gestire questo bit di dati e trasmettendo la mia risposta.
Ma poiché l'unica operazione di I / O che faccio con questi dati è la trasmissione di una risposta o l'invio di cose ad altri client, non sono sicuro che ci sia un motivo per non limitarsi a bloccare il singolo thread fino al termine. Se è in ogni modo possibile che il ciclo asyncio utilizzi più di un thread, se pianifico attività, sarà effettivamente possibile eseguirle in parallelo, ma non penso che sia così.
Ho considerato che forse per scopi di blocco preferirei usare le coroutine, ma se sono bloccato con un singolo thread non dovrebbe essere necessario.