Следующая программа реализует два массива потоков. Есть две функции потока ученик и учитель (я их здесь не показывал). Моя примерная программа приведена ниже. Я хочу сделать ограничение по времени (скажем, 10 секунд), после чего основной поток автоматически выйдет независимо от того, завершились ли другие потоки или нет. Я также хочу, чтобы текущее время каждый момент после запуска программы. Как я это сделаю?Создание автоматической завершающей основной функции
Пример фрагмента кода:
int main(void)
{
pthread_t thread1[25];
pthread_t thread2[6];
int i;
int id1[25]; //for students
int id2[6]; //for teachers
for(i=0;i<25;i++)
{
id1[i]=i;
id2[i]=i;
pthread_create(&thread1[i],NULL,student,(void*)&id1[i]);
if(i<6)
{
pthread_create(&thread2[i],NULL,teacher,(void*)&id2[i]);
}
}
for (i=0;i<25;i++)
{
pthread_join(thread1[i],NULL);
if(i<6)
{
pthread_join(thread2[i],NULL);
}
}
return 0;
}
Какие дополнительные вещи я должен добавить в коде выше, чтобы прекратить основной поток через определенное время? (скажем: 10 секунд)
Если процесс завершается, все (без отсоединения) потоки также будут убиты. Так что вам нужен таймер. –
Как установить таймер? Можете ли вы показать мне демо-код? @Joachim Pileborg – user3114849