0
Я реализовал PThreads в довольно элементарным способом, как:PTHREAD - Thread Выход рано, несмотря на призывая pthread_join
#include<iostream>
#include<pthread.h>
#include<stdio.h>
using namespace std;
class ThreadParameter
{
public:
char symbol_char;
int count;
};
void* print_char (void* param)
{
ThreadParameter* p = (ThreadParameter*)param;
for (int i=0; i< p->count; i++)
{
cout<< p->symbol_char <<endl;
i++;
}
return NULL;
}
int main()
{
pthread_t thread1_id;
ThreadParameter param1;
param1.symbol_char = 'X';
param1.count = 27;
pthread_create (&thread1_id, NULL, &print_char, ¶m1);
int i = 0;
while (i<10)
{
cout<<"O"<<endl;
i++;
}
pthread_join(thread1_id,NULL);
return 0;
}
И его выход не показывает ожидаемый н.у.к. из X. Могу ли я делать какую-то ошибку в вызове функции присоединиться или что? Спасибо за помощь.
P.S: Я пробовал различные значения X от 5 до 20 лет, но она всегда дает мне меньше, чем искомых числа X.
Ой !! Такая плохая ошибка. Ужасно меня. Really Sorry –
Кроме этого. Правильно ли это реализовать? –
Это выглядит хорошо для меня. Однако я бы предложил использовать C++ 11 и новый стандартный способ программирования потоков на C++, если это возможно. – chmike