我已经使用POSIX线程创建了两个线程数组。有两个线程函数student和teacher(我没有在这里显示它们)。我的示例程序如下。我想做一个时间限制(比如说10秒),之后主线程会自动退出,不管对应的线程是否完成。我将如何做到这一点?在C中一定时间后终止主线程
示例代码片段:
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秒)
您是否希望'main'作为'return'或'exit'终止,以至于整个过程终止?或者你想执行'pthread_exit',以便所有其他线程继续运行? –