Вопрос относительно создания pthread в linux
Я изучаю c++ и наткнулся на приведенный ниже код, в котором я не понимал нижнюю строку.
РЦ = pthread_create(&амп;, (недействительными *)&ампер потоков[я], нулем, PrintHello;тд[я]);
Где,
rc = код возврата в int
thread - это pthread_t threads[5]
PrintHello - это threadRoutine
td-это структура с 2 переменными 1-это int thread_Id, а другая-char* msg
Я не понял, почему (1-й аргумент) передается как ссылка и (последний аргумент) td typecasted to (void*)
Полный код:
структура thread_data {
инт thread_id;
char *сообщение;
};
void *PrintHello(void *threadarg) {
структура thread_data *my_data;
my_data = (struct thread_data *) threadarg;
соиь <&ЛТ; "идентификатор потока :" &ЛТ;&ЛТ; my_data-&ГТ;thread_id ;
соиь <&ЛТ; "сообщение :" &ЛТ;&ЛТ; my_data-и GT;сообщение на << епси;
pthread_exit(NULL);
}
тап_п () {
потоков pthread_t[NUM_THREADS];
структура thread_data тд[NUM_THREADS];
int rc;
int i;
для( i = 0; i < NUM_THREADS; i++ ) {
соиь <&ЛТ;"основной() : создание темы", &ЛТ;&ЛТ; я &л;< епси;
тд[я].thread_id = я;
td[i].message = "это сообщение";
РЦ = pthread_create(&амп;, (недействительными *)&ампер потоков[я], нулем, PrintHello;тд[я]);
if (rc) {
cout << "ошибка:невозможно создать поток", << rc << endl;
выход(-1);
}
}
pthread_exit(NULL);
}
Что я уже пробовал:
Читал ссылки но так и не понял зачем это здесь нужно