Mehrere Threads in einer Schleife startetn



  • Hallo,
    gibt es eine Möglichkeit in einer Schleife mehrere Threads zustarten?

    //So In Zum Beispiel
    
    int i = 0;
    
    while(i != 10)
    {
     //Thread erstellen
     //Thread starten
     i++;
    }
    

    LG 🙂



  • Ja, sogar nicht nur eine, man koennte quasi sagen es gibt unendlich viele verschiedene Moeglichkeiten das zu machen. Welche davon die richtige fuer dich ist haengt allerdings davon ab was du erreichen willst. Prinzipiell kannst du die Threads entweder in einen Container legen und spaeter .join()en (oder .detach()en), oder du .detach()st jeden Thread sobald du ihn erstellt hast.



  • void foo(int n)
    {
        std::this_thread::sleep_for(std::chrono::seconds(1));
        std::cout << "Thread " << n << " meldet sich! << std::endl;
        std::this_thread::sleep_for(std::chrono::seconds(1));
    }
    
    // ...
    
    std::vector<std::thread> threads;
    
    for(int i = 0; i < 1000; i++)
        threads.emplace_back(foo, i);
    

Anmelden zum Antworten