我目前正在實習並要求使用C++編寫多客戶端服務器客戶端應用程序。因此,我試圖學習線程。有一個問題:C++中的線程使用情況
我想打印「你在線程A」,然後「你在線程B」,「現在你又回到了線程A」。但它只打印前兩個句子並忽略endl命令。無法準確理解它是如何工作的。如何解決這個問題,你能簡要解釋一下工作機制嗎?
爲什麼主線程在所有函數調用完成之前退出?
void * function1(void * arg);
void * function2(void * arg);
pthread_t thr_A, thr_B;
int main(void)
{
pthread_create(&thr_A, NULL, function1, (void*)thr_B);
pthread_create(&thr_B, NULL, function2,NULL);
return 0;
}
void * function1(void * arg)
{
cout << "You are in thread A" << endl;
pthread_join(thr_B, NULL);
cout << "now you are again in thread A" << endl;
pthread_exit((void*)thr_A);
}
void * function2(void * arg)
{
cout << " you are in thread B " << endl ;
pthread_exit((void*)thr_B);
}
如果你被要求使用C,那麼你爲什麼要使用C++?如果您使用C++,爲什麼不使用標準線程庫? –