執行緒中慎用exit

2021-06-21 16:24:10 字數 376 閱讀 6910

在程式設計過程中,出現

send:connection reset by peer.

原因是在資料傳輸過程中,伺服器端程式提前終止。罪魁禍首是乙個exit。

如果程序中的任一線程呼叫了exit,_exit或者_exit,那麼整個程序就會終止。

單個執行緒可以通過下列三種方式退出,在不終止整個程序的情況下停止它的控制流。

(1)執行緒只是從啟動例程中返回,返回值是執行緒的退出碼。

(2)執行緒可以被同一程序中的其他執行緒取消。

(3)執行緒呼叫pthread_exit。

呼叫pthread_join的執行緒會阻塞,直到指定的執行緒呼叫pthread_eixt、從啟動例程中返回或者被取消。

摘抄自:unix環境高階程式設計(第2版)

多執行緒中物件指標須慎用

在多執行緒中環境中,通常需要輔助線程和主線程通訊,一般輔助線程都是使用者執行緒,用createthread,或者afxbeginthread啟動。推薦使用後者 afxbeginthread proc,null 其中proc是函式名,其定義為 uint proc lpvoid lp 通訊方式有兩種,一...

多執行緒 exit 函式

所在標頭檔案 stdlib.h 功 能 關閉所有檔案,終止正在執行的程序。exit 1 表示異常退出.這個1是返回給作業系統的。exit x x不為0 都表示異常退出 exit 0 表示正常退出 exit 的引數會被傳遞給一些作業系統,包括unix,linux,和ms dos,以供其他程式使用。st...

Linux 中 exit和exit的區別

linux 中 exit和exit的區別 在linux的標準庫函式中,有一套稱作高階i o的函式,我們熟知的printf fopen fread fwrite都在此列,他們也被稱作緩衝i o。其特徵是對應每乙個開啟的檔案,都存在乙個緩衝區,在記憶體中都有一片緩衝區,每次讀檔案會多讀若干條記錄,這樣下...