Witam. Mam program, który korzysta z 2 wątków i chce wypisywać jakieś informacje najpierw z wątek1 a potem z wątek2. Niestety na konsoli napisy są wymieszane i generalnie panuje chaos :D
#include <iostream>
#include <string>
#include <thread>
void informacje(std::string nazwaWatku) {
std::cout << "Tytul " << nazwaWatku << "." << std::endl;
std::cout << "Tekst " << nazwaWatku << "." << std::endl;
std::cout << nazwaWatku << " zostal zakonczony." << std::endl;
}
int main() {
std::thread watek1(informacje, "watek1");
std::thread watek2(informacje, "watek2");
watek1.join();
watek2.join();
std::cout << "Funkcja main() zostala zakonczona." << std::endl;
return 0;
}
1. Jak zrobić aby najpierw wypisać zawartość z wątek1 a dopiero po wypisaniu wszystkiego wypisać wątek2? Coś w tym stylu:
Tytul watek1
Tekst watek1
watek1 zostal zakonczony
Tytul watek2
Tekst watek2
watek2 zostal zakonczony
Funkcja main() zostala zakonczona
2. Jak zrobić coś podobnego do tego poniżej?
Tytul watek1
Tytul watek2
Tekst watek2
Tekst watek1
watek1 zostal zakonczony
watek2 zostal zakonczony
Funkcja main() zostala zakonczona