Partage
  • Partager sur Facebook
  • Partager sur Twitter

Multithreading class thread STL C++ 11

Comment faire du multithreading en utilisant cette class

    6 mai 2022 à 12:06:42

    Bonjour à tous,

    Je débute sur la POO et j'utilise afin de créer un serveur UDP des thread. J'aimerai me servir de la class thread issu de la STL. Est ce que il est possible de faire quelque chose comme ça :

    #include <iostream>       // std::cout
    #include <thread>         // std::thread
    #include <stdio.h>
    #include <stdlib.h>
    #define T_max 10
    //g++ -Wall -o thread thread.cpp  -lpthread
    
    void thread_lisa(int client_id) 
    {
       std::cout << "je suis dans le thread "<<std::this_thread::get_id()<<"avec le client "<<client_id<<std::endl;
    }
    
    int main() 
    {
      int client_id;
      client_id = 0;
    
      while(1)
      {
    
          client_id++;
          std::thread t1(thread_lisa,client_id);
          t1.detach();
      }
      return 0;
    }


    ou faut-il comme avec la bibliothèque pthread créer un tableau contenant les threads ? Quelque chose comme ça :

    std::thread tab[5]={t1,t2,...}; (même si ça me semble pas possible)

    Enfaite est ce que dans ma boucle si je fais plusieurs appelle à t1, ça va lancer des threads avec des id différents et distincts à chaque fois ?

    Merci d'avance :)

    • Partager sur Facebook
    • Partager sur Twitter
      6 mai 2022 à 17:18:04

      Possible, oui. Bonne idée, non. Créer des threads et changer de contexte est coûteux. Si tu fais des milliers de threads, cela aura un impact négatif sur les performances. En général, on utilise des threads pool.

      Et si tu debutes la POO et les threads en même temps, il y un problème dans ton apprentissage.

      Une référence pour la prog multithread en C++, c'est C++ Concurrency in Action.

      • Partager sur Facebook
      • Partager sur Twitter
        6 mai 2022 à 19:13:43

        Les anti-virus "modernes" ne flinguent toujours pas ce type de "comportement" ?
        • Partager sur Facebook
        • Partager sur Twitter
        Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
          6 mai 2022 à 19:40:45

          Anti-étourderie, en vrai.
          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

          Multithreading class thread STL C++ 11

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          • Editeur
          • Markdown