Ho avuto questo problema in un'intervista e voglio confermare che il multi-threading non aggiunge alcun valore qui.
Caso:
-
Stai scrivendo un agente per acquistare azioni.
-
L'agente viene inizializzato con un insieme di scorte da acquistare quando raggiungono un determinato prezzo.
-
Un servizio separato (fuori ambito) monitora il mercato e invoca un callback sul tuo agente quando un pice cambia (l'agente implementa un'interfaccia che fornisce il metodo di callback)
-
La richiamata può essere invocata per titoli a cui non ti interessa, e quando viene invocato per un titolo che ti interessa, devi controllare che il prezzo sia il prezzo che vuoi acquistare.
-
Quando determini di dover acquistare, invochi un servizio esterno fuori ambito.
-
L'agente verrà eseguito in modo asincrono da qualche motore che lo crea.
-
Quando tutti gli stock (al prezzo desiderato) sono stati acquistati, l'agente si spegne.
-
Il motore che si trova nell'agente è fuori portata.
Non vedo il vantaggio di avere l'agente asincrono.