我正在编写一个多线程程序,其中一个线程执行大量系统调用(如读、写),而其他线程执行普通调用,如 printf。假设线程A用于普通调用,线程B用于系统调用,我的主函数就像
int main()
{
pthread_t thread_A;
pthread_t thread_B;
pthread_create(&thread_B,NULL,&system_call_func,NULL);
pthread_create(&thread_A,NULL,&printf_func,NULL);
pthread_join(thread_B,NULL);
pthread_join(thread_A,NULL);
printf("Last thread to be executed was %c\n",write_last);
return 0;
}
通过这个,我发现带有系统调用的线程总是最后执行。即使我改变线程创建和加入的顺序,它仍然是线程B。我有两个问题,线程创建/加入的顺序重要吗?是因为线程B总是最后执行的系统调用吗?