freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[計(jì)算機(jī)]多線程編程-資料下載頁

2025-08-21 16:38本頁面
  

【正文】 真正的系統(tǒng)API接口是CreateThread;_beginthread是對(duì)CreateThread的封裝,也就是說_beginthread最終也是需要調(diào)用CreateThread來實(shí)現(xiàn)多線程的。 也許MS封裝了_beginthread的本意是想讓_beginthread稱為跨平臺(tái)的多線程標(biāo)準(zhǔn)函數(shù)。但是不幸是這個(gè)目標(biāo)并沒有實(shí)現(xiàn)。現(xiàn)在倒是有一套可移植的跨平臺(tái)多線程函數(shù)庫pthread,它在多個(gè)unix/linux系統(tǒng)上得到實(shí)現(xiàn)。 真正的系統(tǒng)API接口是CreateThread;_beginthread是對(duì)CreateThread的封裝,也就是說_beginthread最終也是需要調(diào)用CreateThread來實(shí)現(xiàn)多線程的。 _beginthreadex調(diào)用CreatThread? 我現(xiàn)在的理解就是CreatThread就是windows平臺(tái)下的,如果_beginthreadex是通過調(diào)用createthread來實(shí)現(xiàn)的,那么怎么跨平臺(tái)使用啊?即使別的平臺(tái)支持_beginthreadex,但是它不支持createThread還不是一樣等于_beginthreadex不能跨平臺(tái)? 《Windows核心編程》里有講到,_beginThread會(huì)對(duì)c/c++的一些堆棧還有一些參數(shù)做一些處理,參見第6章 ............... 現(xiàn)在,假設(shè)在調(diào)用system函數(shù)之后和調(diào)用if語句之前,執(zhí)行上面代碼的線程中斷運(yùn)行,同時(shí)假設(shè),該線程中斷運(yùn)行是為了讓同一進(jìn)程中的第二個(gè)線程開始執(zhí)行,而這個(gè)新線程將執(zhí)行另一個(gè)負(fù)責(zé)設(shè)置全局變量errno的C運(yùn)行期函數(shù)。當(dāng)CPU在晚些時(shí)候重新分配給第一個(gè)線程時(shí),errno的值將不再能夠反映調(diào)用上面代碼中的system函數(shù)時(shí)的錯(cuò)誤代碼。為了解決這個(gè)問題,每個(gè)線程都需要它自己的errno變量。此外,必須有一種機(jī)制,使得線程能夠引用它自己的errno變量,但是又不觸及另一個(gè)線程的errno變量。 這是標(biāo)準(zhǔn)C/C++運(yùn)行期庫原先并不是設(shè)計(jì)用于多線程應(yīng)用程序的唯一一個(gè)例子。在多線程環(huán)境中存在問題的C/C++運(yùn)行期庫變量和函數(shù)包括errno、_doserrno、strtok、_wcstok、strerror、_strerror、tmpnam、tmpfile、asctime、_wasctime、gmtime、_ecvt和_fcvt等。 若要使多線程C和C++程序能夠正確地運(yùn)行,必須創(chuàng)建一個(gè)數(shù)據(jù)結(jié)構(gòu),并將它與使用C/C++運(yùn)行期庫函數(shù)的每個(gè)線程關(guān)聯(lián)起來。當(dāng)你調(diào)用C/C++運(yùn)行期庫時(shí),這些函數(shù)必須知道查看調(diào)用線程的數(shù)據(jù)塊,這樣就不會(huì)對(duì)別的線程產(chǎn)生不良影響。 那么系統(tǒng)是否知道在創(chuàng)建新線程時(shí)分配該數(shù)據(jù)塊呢?回答是它不知道。系統(tǒng)根本不知道你得到的應(yīng)用程序是用C/C++編寫的,也不知道你調(diào)用函數(shù)的線程本身是不安全的。問題在于你必須正確地進(jìn)行所有的操作。若要?jiǎng)?chuàng)建一個(gè)新線程,絕對(duì)不要調(diào)用操作系統(tǒng)的CreateThread函數(shù),必須調(diào)用C/C++運(yùn)行期庫函數(shù)_beginthreadex: unsignedlong_beginthreadex( void*security, unsignedstack_size, unsigned*start_address)(void*), void*arglist, unsignedinitflag, unsigned*thrdaddr)。 ............................... 還有一本《C++面向?qū)ο蠖嗑€程編程》,比win32多線程要好,很多概念都有詳細(xì)的解釋,網(wǎng)上有電子版 win32多線程就是指的windows平臺(tái)下的多線程編程?我現(xiàn)在就是這么理解的,不知道對(duì)不對(duì), 其他非windows平臺(tái)下是如何實(shí)現(xiàn)多線程的?有人可以解答一下嗎?
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1