> > > Quindi qual è il modo migliore per far fare alla CPU altro lavoro mentre > è in attesa del risultato di una query? > Oppure ha ragione il mio collega e potevo risparmiarmi del lavoro? >
Non devi fare nulla; il sistema operativo garantisce che mentre il tuo thread è bloccato in attesa di I/O, qualsiasi altro thread pronto ad eseguire potrà usare la CPU. Se stai sviluppando un servizio REST, il thread bloccato lascia la CPU disponibile per qualsiasi altra richiesta concorrente. Tutto dipende da che cos'è che stai cercando di ottenere esattamente. Se l'obiettivo è fare in modo che il tuo chiamante riceva 200 prima che sia completata la chiamata al DB o a qualsiasi sia l'operazione "lenta" che devi eseguire, allora devi eseguire l'operazione lenta su un secondo thread; ma poi devi fornire un secondo endpoint per consentire al chiamante di sapere se l'operazione è completata. Questa cosa può avere senso per operazioni molto lunghe (tipo elaborazioni grafiche)
