È quasi sempre più semplice pensare in sequenza, e successivamente modificare quella logica per lavorare meglio usando i thread. E, come dice l'espressione, "Se non è rotto, non aggiustarlo." La maggior parte dei programmatori non usa thread semplicemente perché non c'è bisogno di usarli.
Se ti senti più a tuo agio nell'usarli, più potere per te. Tuttavia, sappi che se i thread non offrono un aumento di velocità eliminando i colli di bottiglia, stanno quasi certamente rallentando il tuo programma.
Considera inoltre che i sistemi che dedicano solo una CPU a un processo simuleranno più thread di un singolo thread per risparmiare risorse (questo non accade spesso con i computer moderni, anche se le applicazioni smart phone sono ancora molto soggette a questo abuso ). In questo caso, anche se stai eliminando i colli di bottiglia attraverso l'uso dei thread, sarà più lento che se non hai usato affatto i thread.
E, forse la ragione più sottile per usare cautela nell'uso dei thread, ma certamente non il meno importante, i thread hanno la tendenza a fare ciò che non ti aspetti. Sì, se stai prendendo precauzioni, dovresti stare bene. Sì, se i tuoi thread non scrivono su variabili condivise tra thread, dovresti essere a posto. Detto questo, i bug relativi ai thread sono molto difficili da trovare. Dal momento che sono dell'idea che un programmatore non può mai eliminare completamente la possibilità di creare bug nel codice e quindi un programmatore dovrebbe adottare misure per proteggersi da possibili bug piuttosto che concentrarsi su eliminarli completamente, si dovrebbe assolutamente applicare questa idea a hard- trovare i bug del thread pure. In altre parole, sappi che, nonostante i tuoi migliori sforzi, l'uso di thread nel codice creerà quasi certamente alcuni bug molto seri prima o poi che non avresti altrimenti senza utilizzare i thread.
Quindi dovresti usare i thread comunque? Bene, una buona conoscenza dei thread non è certamente una brutta cosa, specialmente se diventi bravo a farlo. Tuttavia, il movimento di ritardo è stato verso linguaggi a thread singolo come node.js. Uno dei principali vantaggi di avere un singolo thread è che è facile scalare e determinate ottimizzazioni possono essere fatte se si sa che le istruzioni dovrebbero essere eseguite in sequenza (anche se le ottimizzazioni possono significare che le istruzioni che possono essere eseguite in parallelo possono essere eseguito in modo asincrono).
Detto questo, dico di fare ciò che è più comodo per te. Nella mia esperienza, scrivere un programma che hai capito ha una priorità più alta che farlo funzionare più velocemente. Assicurati di usare i thread solo quando pensi che ti aiuti a scrivere il programma, e non perché vuoi che funzioni più velocemente, dato che non dovresti preoccuparti troppo delle prestazioni mentre stai scrivendo il programma (l'ottimizzazione è importante, ma può anche attendere).