Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Dziwne zachowanie Wątków

Ostatnio zmodyfikowano 2015-08-05 12:41
Autor Wiadomość
C-Objective
Temat założony przez niniejszego użytkownika
[C++] Dziwne zachowanie Wątków
» 2015-08-05 11:59:27
Kod:
C/C++
#include <process.h>
#include <iostream>
#include <string>
using namespace std;
const string napisy[] = { "\tM I S T R Z  K L A W I A T U R Y\t",
    "Gra polega na jak najszybszym wpisaniu wyświetonego wyrazu." };
void naglowek( void * dummy ) {
    cout << napisy[ 0 ] << endl;
    cout << napisy[ 1 ] << endl;
    _endthread();
}
int main( int argc, char ** argv ) {
    _beginthread( naglowek, 0, 0 );
}
Output:

        M I S T R Z  K L A W I A T U R Y                      ♠  ♠ńZ☻ áŘi     p˘
i             Gra polega na jak najszybszym wpisaniu wyťwietlonego wyrazu.    .
☺/ŕ        $                   ☺
                                                                   @§@
   ­@ë ■                  á▲ë ■  Ç→ë ■  ☺

                                                    C

                       C

                                        p ~w     Ĺ}w
                `Ë9ěZ        $                   ☺

Pytanko: Jakim cudem uzyskałem taki output z konsoli, a czasami żaden.
P-135767
DejaVu
» 2015-08-05 12:02:06
Poczytaj lepiej o std::thread.
P-135768
C-Objective
Temat założony przez niniejszego użytkownika
» 2015-08-05 12:04:30
W artykule pisze o takiej właśnie metodzie więc czegoś tu nie rozumiem. A pytanie dalej aktualne
P-135769
Monika90
» 2015-08-05 12:27:25
main się kończy i zmienne globalne są niszczone w czasie gdy drugi wątek wciąż drukuje.

W C++ możesz użyć join, żeby poczekać aż się wątek zakończy
C/C++
#include <thread>
#include <iostream>
#include <string>
using namespace std;
const string napisy[] = { "\tM I S T R Z  K L A W I A T U R Y\t",
    "Gra polega na jak najszybszym wpisaniu wyświetonego wyrazu." };
void naglowek() {
    cout << napisy[ 0 ] << endl;
    cout << napisy[ 1 ] << endl;
}
int main( int argc, char ** argv ) {
    std::thread t( naglowek );
    t.join();
}
P-135770
C-Objective
Temat założony przez niniejszego użytkownika
» 2015-08-05 12:41:28
Thx. Problem rozwiązany.
P-135771
« 1 »
  Strona 1 z 1