Il est presque toujours plus simple de penser de manière séquentielle, puis de modifier ultérieurement cette logique pour mieux fonctionner à l'aide de threads. Et, comme le dit l'expression, "Si ce n'est pas cassé, ne le répare pas." La plupart des programmeurs n'utilisent pas de threads simplement parce qu'il n'est pas nécessaire de les utiliser.
Si vous vous sentez plus à l'aise de les utiliser, plus de puissance pour vous. Cependant, sachez que si les threads n'offrent pas une augmentation de vitesse en éliminant les goulots d'étranglement, ils ralentissent presque certainement votre programme.
Considérez également que les systèmes qui dédient un seul processeur à un processus simuleront plusieurs threads par un seul thread afin d'économiser des ressources (cela ne se produit pas souvent avec les ordinateurs modernes, bien que les applications de téléphones intelligents soient encore très soumises à cet abus). Dans ce cas, même si vous éliminez les goulots d'étranglement grâce à l'utilisation de threads, cela sera en fait plus lent que si vous ne l'utilisiez pas du tout.
Et, peut-être la raison la plus subtile de faire preuve de prudence pour utiliser des threads, mais certainement pas la moins importante, les threads ont tendance à faire ce que vous ne vous attendez pas. Oui, si vous prenez des précautions, ça devrait aller. Oui, si vos threads n'écrivent pas dans des variables partagées entre les threads, vous devriez être d'accord. Cela dit, les bogues liés aux threads sont très difficiles à trouver. Étant donné que je suis d'avis qu'un programmeur ne peut jamais éliminer complètement la possibilité de créer des bogues dans le code et donc un programmeur devrait prendre des mesures pour se protéger contre d'éventuels bogues plutôt que de se concentrer sur leur élimination complète, vous devriez certainement appliquer cette idée aux hard- pour trouver également des bogues de threads. En d'autres termes, sachez que malgré tous vos efforts,
Alors, devriez-vous quand même utiliser des threads? Eh bien, une bonne connaissance des threads n'est certainement pas une mauvaise chose, surtout si vous devenez bon dans ce domaine. Cependant, le mouvement récent s'est orienté vers des langages à un seul thread tels que node.js. L'un des principaux avantages d'avoir un seul thread est qu'il est facile à mettre à l'échelle et certaines optimisations peuvent être faites si vous savez que les instructions doivent être exécutées séquentiellement (même si les optimisations peuvent signifier que les instructions qui peuvent être exécutées en parallèle peuvent être exécuté de manière asynchrone).
Cela dit, je dis de faire ce qui vous convient le mieux. D'après mon expérience, l'écriture d'un programme que vous comprenez est plus prioritaire que son accélération. Assurez-vous simplement d'utiliser des threads lorsque vous pensez que cela vous aide à écrire le programme, et non pas parce que vous voulez qu'il fonctionne plus rapidement, car vous ne devriez pas vous soucier autant des performances que vous écrivez le programme (l'optimisation est importante, mais elle peut également attendre).