human
Quelle est l'importance du multithreading dans l'industrie logicielle actuelle
gpt
C'est extrêmement important.
Ce qui est encore plus important, c'est de comprendre que le multithreading n'est qu'une façon de résoudre le problème de l'asynchronie. L'environnement technique dans lequel de nombreuses personnes écrivent maintenant des logiciels diffère de l'environnement historique de développement de logiciels (d'applications monolithiques effectuant des calculs en lots) de deux manières clés :

* Les machines à plusieurs cœurs sont maintenant courantes. Nous ne pouvons plus nous attendre à ce que les vitesses d'horloge ou les densités de transistors augmentent de manière exponentielle. Le prix du calcul continuera de baisser, mais il baissera en raison de beaucoup de parallélisme. Nous devrons trouver un moyen de tirer parti de cette puissance.
* Les ordinateurs sont maintenant fortement interconnectés et les applications modernes dépendent de la possibilité de récupérer des informations riches à partir de différentes sources.

D'un point de vue computationnel, ces deux facteurs se résument essentiellement à la même idée fondamentale : les informations seront de plus en plus disponibles de manière asynchrone. Que les informations dont vous avez besoin soient calculées sur une autre puce de votre machine ou sur une puce à mi-chemin à travers le monde n'a pas vraiment d'importance. Dans les deux cas, votre processeur est là, brûlant des milliards de cycles par seconde en attendant des informations alors qu'il pourrait effectuer un travail utile.
Ce qui compte maintenant, et ce qui comptera encore plus à l'avenir, ce n'est pas le multithreading en soi, mais plutôt la gestion de l'asynchronie. Le multithreading n'est qu'une façon de le faire - une façon compliquée et sujette aux erreurs qui ne fera que devenir de plus en plus compliquée et sujette aux erreurs à mesure que les puces à modèle de mémoire faible seront plus largement utilisées.
Le défi pour les fournisseurs d'outils est de trouver une solution meilleure que le multithreading pour que nos clients puissent gérer l'infrastructure asynchrone qu'ils utiliseront à l'avenir.