У меня проблема параллелизма производителя / потребителя, над которой я работаю.Проблема в том, что я получаю segfault сразу после попытки создать мой первый поток.
Соответствующий код:
customer - это структура, объявленная как:
struct pr2_customer
{
pthread_t customer_id;
};
typedef struct pr2_customer customer;
customer - это вектор c ++, объявленный как:
vector<customer> customers;
Createпоток:
for(int i = 0; i < ncustomers; i++)
{
cout<<"creating a customer\n";
pthread_create(&customers[i].customer_id, &attr, customerAction, (void*)i);
}
Вывод:
создание клиента
segfault
customerAction имеет оператор cout, поскольку его первая строка никогда не выполняется, что приводит меня ксчитаю, что нить никогда не создается.
Любая помощь очень ценится.