2011-05-21 87 views
1

假設我創建了一個線程,在某些時候調用函數foo()。 如果我從foo中調用pthread_exit(),是否會因此終止調用foo的線程的終止 ?pthread_exit來自線程調用的函數

感謝, 尼科斯

回答

2

當然。否則,首先pthread_exit有什麼意義。 http://www.kernel.org/doc/man-pages/online/pages/man3/pthread_exit.3.html 「pthread_exit()函數將終止調用線程」

+0

什麼用die.net鏈接的問題? :) – 2011-05-21 15:01:40

+0

有人抱怨die.net手冊頁已過期。在這樣的問題上,這可能是無關緊要的,但更權威的來源不會受到傷害。 – Duck 2011-05-21 15:39:43

+0

哦thx。我不知道。 – 2011-05-21 15:41:12

0

從文檔:

的了pthread_exit()函數終止 調用線程

0

是的,當然。它也將導致調用清理代碼,如果有的話。請注意,它不會自動清除互斥鎖等應用程序資源。有關更多信息,請參閱pthread_exit()文檔。

+0

除了強大的互斥鎖 - 但將它們用於線程而不是進程將是相當浪費的。 – 2011-05-21 16:06:58

0

當然 - 線程上下文不受調用/返回的影響。線程調用pthread_exit(),無論調用堆棧多長時間。如果20個線程調用foo,則所有20個線程都將退出。

RGDS, 馬丁