Это мой код для многопоточной (Это не реальный код, но части разных файлов в одном месте, где я чувствую, что я делаю что-то неправильно)динамическое создание потоков в C++
//main function
Example ExampleObj;
for (int i=0;i<10;i++)
{
pthread_t *service_thread = new pthread_t;
pthread_create(service_thread, NULL,start,&ExampleObj);
}
//start function
void *start(void *a)
{
Example *h = reinterpret_cast<Example *>(a);
h->start1();
return 0;
}
class Example
{
public:
void start1()
{
std::cout <<"I am here \n";
}
};
Кодекс не дает любая ошибка, но она не подходит для запуска1. Пожалуйста, дайте мне знать, правильно ли я создаю нити. Если нет, то каков правильный путь.
Вы протечки память. Не используйте 'new'. – chris
Делает ли ваш 'основной' выход сразу после создания потоков, случайно? Если это так, программа завершается в этот момент, и потоки прерываются, прежде чем они смогут что-либо сделать. –
Если ваша программа заканчивается нормально, возможно, вы не присоединяетесь к главному с потоком – hidrargyro