Filetage vs Task-Based vs la Programmation Asynchrone

Je suis nouveau sur ce concept. Sont-ils les mêmes ou différentes choses? Quelle est la différence? J'aime vraiment l'idée d'être en mesure d'exécuter deux processus à la fois, par exemple si j'ai plusieurs gros fichiers à charger dans mon programme, j'aimerais charger autant de en même temps que possible plutôt que d'attendre pour un à la fois. Et lorsque vous travaillez avec un fichier de grande taille, comme un fichier wav, il serait bien de le casser en morceaux et faire le traitement sur plusieurs morceaux à la fois, puis de les mettre ensemble. Que dois-je regarder pour apprendre à faire ce genre de chose?

Edit: Aussi, je sais à l'aide de plus d'un noyau sur un processeur multicœur ici s'inscrit quelque part, mais apparemment, la programmation asynchrone ne veut pas nécessairement dire que vous êtes à l'aide de plusieurs cœurs? Pourquoi voudriez-vous faire cela si vous n'avez pas plusieurs cœurs pour profiter de la?

  • Asynchrone n'est pas nécessairement en plusieurs threads. Le chargement de plusieurs fichiers simultanément peut pas vous sauver de tout temps, et en fait peut être plus lente car le disque dur ne peut faire qu'une chose à la fois. Vous voudrez augmenter votre fichier d'entrée de la mémoire tampon de 64 KO ou plus. En général, la façon dont vous apprenez au sujet de ce genre de choses est d'obtenir un didacticiel et commencer à l'utiliser. Je n'ai pas de recommandations pour le C++, cependant.
  • Il est difficile de répondre à votre question complètement car il y aurait beaucoup à dire, mais une bonne façon de comprendre la programmation asynchrone est d'écrire un programme utilisant plusieurs threads et de la fonction rappels.
  • Si j'ai plusieurs cœurs, il semble que le traitement d'un grand fichier en séparer les morceaux sur les différents cœurs seraient certainement augmenter les performances mais. Serais-je capable de le faire avec std::thread? Si le filetage n'est pas la seule façon d'exécuter quelque chose de manière asynchrone, ce sont les autres façons de faire?
  • Scott Meyers dans son dernier Effective C++ Moderne comporte une section de C++11 de la simultanéité et de la différence entre le fil et l'utilisation des tâches Item 35: Préférez les tâches de programmation basé sur le thread basée
InformationsquelleAutor Rob Allsopp | 2013-12-06