Я только начинаю C ++ в школе, и я пытаюсь сделать и Linux и Windows.
Так вот мой код и упражнение. Дело в том, что я понятия не имею, как определить время запуска потока, и всякий раз, когда я запускаю его, я не получаю правильный символ.
#include <iostream>
#include <cstdlib>
#include <pthread.h>using namespace std;
bool t;
#define NUM_THREADS 3
void *Saisie(void *PT)
{
char TT[150];
cout << "Entrez une chaîne de caractères :" <<endl;
cin >> TT;
t = true;
pthread_exit(NULL);
}
void *Visualisation(void *PT)
{
cout<<"La chaine transmise est :" << &*(char*)PT <<endl;
pthread_exit(NULL);
}
int main ()
{
pthread_t TH1;
pthread_t TH2;
char TT[150];
t = false;
while (t == false){
pthread_create(&TH1,NULL,Saisie,&TT); // Création du thread TH1
pthread_join(TH1,NULL);
}
if (t == true){
pthread_create(&TH2,NULL,Visualisation,&TT); // Création du thread TH2
pthread_join(TH2,NULL);
}
cout << "\nFin du programme – saisir une lettre pour fermer\n";
cin >> TT;
}
И мой вывод следующий:
Entrez une chaîne de caractères: тест
La Chaine Transmise Est: \ 250 \ 365 \ 277 \ 357 \ 376
Большое спасибо!
синхронизируйте ваши потоки и используйте библиотеку, предусмотренную стандартом C ++. Таким образом, ваш код переносим.
Использование библиотеки pthread не более желательно, чем указанная выше опция. Существует реализация pthread для Windows, но зачем переходить к этой проблеме, когда вы можете написать только один раз, используя то, что обеспечивает стандарт C ++.
Чтобы ответить на ваш конкретный запрос, вы можете использовать спать примитив или если вам нужно подождать при условии, то используйте переменные условия
Взглянуть Вот
Других решений пока нет …