У меня есть функция-член класса A, которая создает поток для запуска другой функцииB. FunctionB будет выполнять некоторую операцию и останавливаться через некоторое время (это своего рода пожар и вызов функции забывания, а количество вызовов функции и потоков, необходимых для этого, зависит от результата выполнения). Функция A будет вызываться несколько раз. Я понял, что pthread_create будет принимать pthread_t для первого параметра, а pthread_t должен быть доступен при создании потока. Поэтому я не мог объявить его локальным, как показано ниже. Итак, где я могу объявить pthread_t?Основной вопрос при создании потока в C++
void classA::functionA(int param)
{
pthread_t t; //could not declare local because functionA might return and destroy t before thread being created.
pthread_create(&t , NULL, functionB, param);
}
void functionB(int param)
{
}
Даже если 't' уничтожен, как он влияет на выполнение' functionB'? – Jaywalker
Иногда я получаю ошибку сегментации. Поэтому я предполагаю, что это потому, что t уничтожается до создания потока. – Nick