• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Error

            C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
              217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks
            - -。(583214826) 12:07:52 
            誰(shuí)能給我講一下vc++多線程,幾分鐘就搞定
            - -。(583214826) 12:08:06 
            誰(shuí)能給我講一下vc++多線程,幾分鐘就搞定, 多謝大神們,真的很急
            misora<chriscross@qq.com> 12:08:41 
            這個(gè)太廣泛了。。
            - -。(583214826) 12:09:03 
            創(chuàng)建一個(gè)線程,可以隨時(shí)啟用,就ok了
            - -。(583214826) 12:10:06 
            親們,幫幫我吧
            misora<chriscross@qq.com> 12:10:24 
            _beginthreadex
            - -。(583214826) 12:10:41 
            有沒(méi)有比較完整一些的代碼
            misora<chriscross@qq.com> 12:10:46 
            沒(méi)有
            - -。(583214826) 12:10:59 
            _begininthreadex是個(gè)方法?
            misora<chriscross@qq.com> 12:11:10 
            就是開(kāi)始一個(gè)線程
            - -。(583214826) 12:11:46 

            杯水車薪(1729751029) 12:18:11 
            無(wú)線上網(wǎng)卡 和 無(wú)線網(wǎng)卡是2種不同的東東. 現(xiàn)在都亂套了
            - -。(583214826) 12:18:36 
            ...
            上海-千層(670825328) 12:19:17 
            ?????????????????還有這樣提需求的?
            如果有人說(shuō):誰(shuí)給我一套房,200元搞定,這個(gè)可笑吧
            杯水車薪(1729751029) 12:19:31 

            上海-千層(670825328) 12:20:45 
            需求定了,時(shí)間成本就已被決定了.
            泥翹(694820778) 12:22:49 
            什么東西都等著別人給你來(lái)講 
            杯水車薪(1729751029) 12:23:16 

            泥翹(694820778) 12:23:45 
             
            - -。(583214826) 12:28:02 

            - -。(583214826) 12:28:13 
            時(shí)間跟錢不一樣好嗎
            杯水車薪(1729751029) 12:30:35 
            不是吧,昨天老師還說(shuō)時(shí)間就是金錢
            - -。(583214826) 12:30:49 
            好吧隨便吧
            杯水車薪(1729751029) 12:31:04 
            要么可能今天不是了
            杯水車薪(1729751029) 12:32:23 
            不過(guò),我學(xué)多線程學(xué)了一周才會(huì)用好.好久以后才明白怎么才能不讓程序崩潰
            - -。(583214826) 12:33:47 
            很多語(yǔ)言的線程我都學(xué)過(guò),唯獨(dú)vc++不會(huì),其實(shí)5行代碼就可以解決運(yùn)行一個(gè)線程,關(guān)鍵我不會(huì)寫(xiě)啊,求高人指點(diǎn)。
            武漢-Error<errorcpp@qq.com> 12:34:40 
            - -。(583214826)  12:33:47
            很多語(yǔ)言的線程我都學(xué)過(guò),唯獨(dú)vc++不會(huì),其實(shí)5行代碼就可以解決運(yùn)行一個(gè)線程,關(guān)鍵我不會(huì)寫(xiě)啊,求高人指點(diǎn)。

            就憑你這句話
            武漢-Error<errorcpp@qq.com> 12:34:44 
            沒(méi)必要在這里問(wèn)
            - -。(583214826) 12:34:57 
            ...
            - -。(583214826) 12:35:06 
            我就是問(wèn)一下,還引起公憤了
            - -。(583214826) 12:35:07 
            - -
            - -。(583214826) 12:35:12 
            求高人指點(diǎn)
            武漢-Error<errorcpp@qq.com> 12:35:15 
            5分鐘夠你在msdn找到api了
            - -。(583214826) 12:35:49 
            有高手給寫(xiě)個(gè)簡(jiǎn)單易懂的豈不是更好
            杯水車薪(1729751029) 12:36:53 
            貌似msdn也是高手所寫(xiě),msdn中也有簡(jiǎn)單易懂的例子
            - -。(583214826) 12:37:09 
            那你們?nèi)フ野伞?br />- -。(583214826) 12:37:13 
            求高人指點(diǎn)
            杯水車薪(1729751029) 12:37:24 
            不過(guò),用VC的多線程和其它語(yǔ)言的是很大不同地。
            - -。(583214826) 12:37:32 
            嗯,明白
            武漢-Error<errorcpp@qq.com> 12:37:37 
            哥給你找個(gè),估計(jì)你不會(huì)用
            唉,,,
            - -。(583214826) 12:37:48 
            那你給我找個(gè)吧,麻煩你了
            杯水車薪(1729751029) 12:37:49 
            其它語(yǔ)言地學(xué)會(huì)了,到了VC這里,仍然等于初學(xué)者
            上海-千層(670825328) 12:39:07 
            根據(jù)我的分析,這里分2類人,一類的不會(huì)的,在此忽悠人。
            另一類的學(xué)會(huì)了,當(dāng)初學(xué)得很費(fèi)力,所以今天看到另一個(gè)
            不會(huì)的,只感到高興
            武漢-Error<errorcpp@qq.com> 12:39:28 
            不是,他問(wèn)問(wèn)題的態(tài)度 我很難接受
            - -。(583214826) 12:39:34 
            還有一類,就是吃飽了沒(méi)事干在這評(píng)論問(wèn)題的
            上海-千層(670825328) 12:39:38 
            唉。一切的罪都在多線程太難。不能怪任何人
            武漢-Error<errorcpp@qq.com> 12:39:52 
            用boost::thead
            - -。(583214826) 12:40:03 
            我的態(tài)度沒(méi)那么不好吧? - -
            上海-千層(670825328) 12:40:39 
            向他推薦用boost的,看來(lái)屬于第4類了。
            武漢-Error<errorcpp@qq.com> 12:41:12 
            裝逼的
            上海-千層(670825328) 12:41:14 
            唉。只能說(shuō),咱群雖小,品種卻多。
            - -。(583214826) 12:41:29 

            你是不是大姨媽來(lái)了?
            - -。(583214826) 12:41:50 
            你要真覺(jué)著沒(méi)事干可以去看看書(shū)什么的
            - -。(583214826) 12:41:57 
            知識(shí)是無(wú)邊的。你怎么也學(xué)不完
            上海-千層(670825328) 12:42:08 
            你是不是沒(méi)錢去按摩啊
            武漢-Error<errorcpp@qq.com> 12:42:12 
            問(wèn)問(wèn)題的還是少評(píng)論,,,
            上海-千層(670825328) 12:42:17 
            這么興奮
            - -。(583214826) 12:42:28 
            我不興奮,看你吃太多了,我關(guān)心一下
            上海-千層(670825328) 12:43:12 
            只是娛樂(lè)一下罷了。你還有啥不開(kāi)心的,也說(shuō)說(shuō)讓咱開(kāi)心一下
            武漢-Error<errorcpp@qq.com> 12:43:33 
            這小伙應(yīng)該不是C系程序員
            杯水車薪(1729751029) 12:43:33 

            - -。(583214826) 12:43:40 
            我跟你那誰(shuí)有一腿了。不好意思
            - -。(583214826) 12:43:46 
            我不是學(xué)c++的
            杯水車薪(1729751029) 12:44:17 
            不是啊
            杯水車薪(1729751029) 12:44:31 
            來(lái)錯(cuò)群了。怪不得成了娛樂(lè)。
            - -。(583214826) 12:45:10 
            哦,你們很不喜歡不會(huì)c++的人啊
            - -。(583214826) 12:45:16 
            好吧
            杯水車薪(1729751029) 12:45:20 
            喜歡
            杯水車薪(1729751029) 12:45:48 
            C++的人很少娛樂(lè)的。
            武漢-Error<errorcpp@qq.com> 12:46:13 
            相對(duì)還是很open的
            上海-千層(670825328) 12:46:14 

            上海-千層(670825328) 12:47:04 
            看把他急的,這一腿那一腿都說(shuō)出來(lái)了。快崩潰了。
            看來(lái)他本身就不是多線程的。
            武漢-Error<errorcpp@qq.com> 12:47:19 

            #include <iostream>

            using namespace std;

            #include <boost/thread.hpp>

            void TestFunc()
            {
            cout << __FUNCTION__ << endl;
            }

            int _tmain(int argc, _TCHAR* argv[])
            {
            boost::thread threadTest(&TestFunc);

            threadTest.join();

            getchar();

            return 0;
            }
            武漢-Error<errorcpp@qq.com> 12:47:25 
            沒(méi)編譯
            杯水車薪(1729751029) 12:47:23 

            武漢-Error<errorcpp@qq.com> 12:47:31 
            不過(guò)應(yīng)該沒(méi)問(wèn)題的
            - -。(583214826) 12:47:36 
            謝謝高手,比某人強(qiáng)很多
            武漢-Error<errorcpp@qq.com> 12:47:43 
            我是水貨
            武漢-Error<errorcpp@qq.com> 12:47:51 
            高手不會(huì)回答這么簡(jiǎn)單的問(wèn)題的
            武漢-Error<errorcpp@qq.com> 12:47:55 
            尤其你這種態(tài)度
            武漢-Error<errorcpp@qq.com> 12:48:04 
            我敢說(shuō) 在C++群 絕對(duì)混不開(kāi)
            武漢-Error<errorcpp@qq.com> 12:48:18 
            除非你在其他方面很牛
            - -。(583214826) 12:48:52 
            我態(tài)度也沒(méi)怎么不好啊,我只是解釋一下我能很快接受高手給講得東西罷了
            - -。(583214826) 12:49:09 
            要不然你看看聊天記錄- -
            杯水車薪(1729751029) 12:49:09 
            武漢-Error,這樣答題,什么也不會(huì)解決。他仍然不會(huì),相信boost是需要安裝的,所以他也用不成
            - -。(583214826) 12:49:28 
            我試試吧,不行再解決
            游戲開(kāi)發(fā)者(2528395832) 12:49:34 
            推薦你找好工作 只要你上CG游戲人才網(wǎng):http://www.cggamejob.com注冊(cè)個(gè)人會(huì)員, 就能幫你實(shí)現(xiàn)就業(yè) 最新職位招聘::3D角色 場(chǎng)景 特效 動(dòng)作 影視動(dòng)畫(huà) 美術(shù) 程序、策劃、數(shù)值 市場(chǎng)  運(yùn)營(yíng)等. 
            武漢-Error<errorcpp@qq.com> 12:49:42 
            - -。(583214826)  12:48:52
            我態(tài)度也沒(méi)怎么不好啊,我只是解釋一下我能很快接受高手給講得東西罷了

            C++er 從來(lái)不信速成
            杯水車薪(1729751029) 12:49:41 
            他還得再提問(wèn)
            武漢-Error<errorcpp@qq.com> 12:50:11 
            合格的C++er  都是被編譯器摧殘蹂躪出來(lái)的
            - -。(583214826) 12:50:14 
            就算我信了速成也不能說(shuō)我態(tài)度不好吧 - -,我很誠(chéng)懇艾。。
            武漢-Error<errorcpp@qq.com> 12:50:23 
            誠(chéng)懇個(gè)屁
            杯水車薪(1729751029) 12:50:24 
            你開(kāi)了頭,要是不幫他完全解決,反可能成為不耐心的人。
            - -。(583214826) 12:50:36 
            ...
            - -。(583214826) 12:50:37 
            好吧
            武漢-Error<errorcpp@qq.com> 12:50:49 
            囧,,,
            - -。(583214826) 12:50:57 
            小弟認(rèn)錯(cuò)了
            武漢-Error<errorcpp@qq.com> 12:51:10 
            error PRJ0003 : Error spawning 'cmd.exe'.

            武漢-Error<errorcpp@qq.com> 12:51:13 
            誰(shuí)遇到過(guò)
            - -。(583214826) 12:52:02 
            問(wèn)個(gè)問(wèn)題真困難
            - -。(583214826) 12:52:03 

            杯水車薪(1729751029) 12:52:37 
            可能原因恰在于你問(wèn)了一個(gè)過(guò)于簡(jiǎn)單的問(wèn)題
            武漢-Error<errorcpp@qq.com> 12:52:52 
            太抽象了
            - -。(583214826) 12:53:08 
            果然出問(wèn)題了
            - -。(583214826) 12:53:21 

            - -。(583214826) 12:53:31 
            這是要添加外部文件吧?
            杯水車薪(1729751029) 12:53:45 
            好,武漢人,可以繼續(xù)了。
            - -。(583214826) 12:53:54 
            ....
            武漢-Error<errorcpp@qq.com> 12:54:24 

            - -。(583214826) 12:54:36 
            不對(duì)
            - -。(583214826) 12:54:47 
            是這樣
            上海-千層(670825328) 12:54:51 
            用了boost你就掉進(jìn)了無(wú)底洞。
            現(xiàn)在相信關(guān)于第4類人的理論了吧。
            - -。(583214826) 12:55:09 
            我的程序要在標(biāo)準(zhǔn)win32平臺(tái)下運(yùn)行,不能帶其他的類庫(kù)
            武漢-Error<errorcpp@qq.com> 12:55:12 
            聲明下,,,偶今天是裝逼來(lái)的,,,
            武漢-Error<errorcpp@qq.com> 12:55:30 
            主要是不用boost 太麻煩了,要寫(xiě)好多代碼
            - -。(583214826) 12:55:33 
            ....
            杯水車薪(1729751029) 12:55:26 

            - -。(583214826) 12:55:42 
            createThread這個(gè)就行了吧


            武漢-Error<errorcpp@qq.com>  12:55:59
            - -。(583214826)  12:55:42
            createThread這個(gè)就行了吧

            簡(jiǎn)單的給你代碼 是害你,,,
            - -。(583214826)  12:56:05
            明白
            武漢-Error<errorcpp@qq.com>  12:56:06
            很多東西要注意的
            武漢-Error<errorcpp@qq.com>  12:56:25
            __beginthread
            武漢-Error<errorcpp@qq.com>  12:56:27
            用這個(gè)
            武漢-Error<errorcpp@qq.com>  12:56:31
            理由不解釋
            - -。(583214826)  12:56:37
            我查查
            杯水車薪(1729751029)  12:57:08
            用哪個(gè)函數(shù)他能不知道?一共就2個(gè)函數(shù)。msdn中推薦一個(gè)。
            武漢-Error<errorcpp@qq.com>  12:57:20
            上海-千層(670825328)  12:54:51
            用了boost你就掉進(jìn)了無(wú)底洞。
            現(xiàn)在相信關(guān)于第4類人的理論了吧。

            千同學(xué)展開(kāi)來(lái)說(shuō)說(shuō)
            武漢-Error<errorcpp@qq.com>  12:57:27
            還有一會(huì)才上班呢
            上海-千層(670825328)  12:57:37
            真正的困難還沒(méi)看出來(lái)?困難在于要幾分鐘之內(nèi)。
            杯水車薪(1729751029)  12:57:49

            - -。(583214826)  12:58:01
            呵呵,可惜沒(méi)人能帶著我搞一下
            - -。(583214826)  12:58:07
            自己搞當(dāng)然要花時(shí)間了
            武漢-Error<errorcpp@qq.com>  12:58:08


            我不用boost 也要去查函數(shù),然后填api
            上海-千層(670825328)  12:58:08
            線程能有多少函數(shù)啊?
            - -。(583214826)  12:58:09

            杯水車薪(1729751029)  12:58:48
            至此,武漢人是唯一回答過(guò)的人,請(qǐng)繼續(xù)吧
            上海-千層(670825328)  12:59:39
            別人花時(shí)間搞成功的,適用于所有情況的,恐怕只有boost了。
            上海-千層(670825328)  13:00:01
            好東東怕你吞不下去啊.
            武漢-Error<errorcpp@qq.com>  13:00:04
            我不是武漢人
            武漢-Error<errorcpp@qq.com>  13:00:22
            好吧
            武漢-Error<errorcpp@qq.com>  13:00:25
            第二版 給你
            武漢-Error<errorcpp@qq.com>  13:00:27
            #include <iostream>

            using namespace std;

            #include <boost/thread.hpp>

            #include <Windows.h>
            #include <process.h> 

            void TestFunc()
            {
            cout << __FUNCTION__ << endl;
            }

            void TestFuncWin( void *ch )
            {
            cout << __FUNCTION__ << endl;
            }


            int _tmain(int argc, _TCHAR* argv[])
            {
            boost::thread threadTest(&TestFunc);

            threadTest.join();

            _beginthread( &TestFuncWin, 0, NULL );



            getchar();

            return 0;
            }
            武漢-Error<errorcpp@qq.com>  13:00:45
            不過(guò)你要是這么用了,技術(shù)經(jīng)理會(huì)懷疑你的能力
            - -。(583214826)  13:01:44

            上海-千層(670825328)  13:02:09
            你都改用api了,那這個(gè)例子就別用boost了。他電腦里沒(méi)這個(gè)。
            武漢-Error<errorcpp@qq.com>  13:02:19
            這是我編譯通過(guò)的代碼,,,

            你怎么跟研究生一樣麻煩
            - -。(583214826)  13:02:27
            .....
            武漢-Error<errorcpp@qq.com>  13:02:45
            把 boost的東西 干掉
            武漢-Error<errorcpp@qq.com>  13:02:50
            剩下的就是你要的
            - -。(583214826)  13:02:58
            行了
            - -。(583214826)  13:03:00
            我沒(méi)用boost
            - -。(583214826)  13:03:09
            thanks
            上海-千層(670825328)  13:03:20
            在函數(shù)前加修飾字 “WINAPI”
            武漢-Error<errorcpp@qq.com>  13:03:32
              裝逼成功
            - -。(583214826)  13:03:35
            .....
            武漢-Error<errorcpp@qq.com>  13:03:46
            其實(shí)學(xué)C++的人都很熱情
            武漢-Error<errorcpp@qq.com>  13:03:59
            只是恨牛不成逼啊
            - -。(583214826)  13:04:01
            主線程的函數(shù)還是開(kāi)啟線程要執(zhí)行的函數(shù)
            上海-千層(670825328)  13:04:01
            個(gè)個(gè)都像是剛來(lái)大姨媽一樣
            武漢-Error<errorcpp@qq.com>  13:04:32
            #include <iostream>

            using namespace std;



            #include <Windows.h>
            #include <process.h> 


            void TestFuncWin( void *ch )
            {
            cout << __FUNCTION__ << endl;
            }


            int _tmain(int argc, _TCHAR* argv[])
            {

            _beginthread( &TestFuncWin, 0, NULL );

            getchar();

            return 0;
            }
            武漢-Error<errorcpp@qq.com>  13:04:36
            這樣就不會(huì)錯(cuò)了
            武漢-Error<errorcpp@qq.com>  13:04:38
            o(︶︿︶)o 唉,,,
            - -。(583214826)  13:05:42
            好了,成功了
            武漢-Error<errorcpp@qq.com>  13:05:58
            午休時(shí)間都快過(guò)了,,,
            - -。(583214826)  13:06:02

            - -。(583214826)  13:06:38
            好吧,被罵的很爽,不過(guò)問(wèn)題解決了
            - -。(583214826)  13:06:42
            謝謝諸位大神啦
            上海-千層(670825328)  13:06:59
            呵呵,不是成功了
            而是失敗剛開(kāi)始
            - -。(583214826)  13:07:18
            失敗了就debug
            - -。(583214826)  13:07:26
            為debug奮斗一輩子- -
            武漢-Error<errorcpp@qq.com>  13:07:30
            上海-千層(670825328)  13:06:59
            呵呵,不是成功了
            而是失敗剛開(kāi)始

            正解
            武漢-Error<errorcpp@qq.com>  13:07:48
            多線程的還真得 debug一輩子
            杯水車薪(1729751029)  13:07:50
            不是太可能吧。多線程可以認(rèn)為就是一條不歸路。用了就是找死。
            杯水車薪(1729751029)  13:08:00
            debug沒(méi)用
            - -。(583214826)  13:08:03
            那個(gè)
            - -。(583214826)  13:08:14
            這線程不會(huì)要手動(dòng)銷毀吧- -?
            武漢-Error<errorcpp@qq.com>  13:08:17
            也別太絕對(duì)嘛
            武漢-Error<errorcpp@qq.com>  13:08:28
            自然return就可以
            武漢-Error<errorcpp@qq.com>  13:08:38
            不要問(wèn)其他的了
            武漢-Error<errorcpp@qq.com>  13:08:46
            將一個(gè)月都講不完
            - -。(583214826)  13:08:50
            ...
            - -。(583214826)  13:09:04

            - -。(583214826)  13:09:09
            返回的線程句柄嘛
            上海-千層(670825328)  13:09:07
             這不對(duì)。
            windows下線程會(huì)占用一個(gè)handle,必須close 
            - -。(583214826)  13:09:14
            不銷毀怎么辦?
            上海-千層(670825328)  13:10:06
            handle是系統(tǒng)級(jí)別的資源。不close將會(huì)時(shí)間長(zhǎng)占完了以后系統(tǒng)死機(jī)
            - -。(583214826)  13:10:10
            銷毀線程的函數(shù)叫什么來(lái)著
            武漢-Error<errorcpp@qq.com>  13:10:16
            這個(gè)我真沒(méi)注意
            上海-千層(670825328)  13:10:55
            一般不要銷毀線程。否則線程不會(huì)執(zhí)行棧展開(kāi)行為,將會(huì)內(nèi)存泄漏
            - -。(583214826)  13:11:31
            線程用完才銷毀
            上海-千層(670825328)  13:11:47
            不是,不要銷毀。要讓線程自己結(jié)束
            - -。(583214826)  13:11:56
            應(yīng)該有個(gè)什么函數(shù),用來(lái)接收傳回來(lái)的參數(shù)
            杯水車薪(1729751029)  13:12:12
            歡迎你來(lái)到多線程的失敗之路。
            - -。(583214826)  13:12:42
            那線程指定的回調(diào)方法執(zhí)行完了不就自己就結(jié)束了嗎
            - -。(583214826)  13:12:53
            好吧,那就不用擦屁股了
            上海-千層(670825328)  13:13:10
            應(yīng)該,這個(gè)想法沒(méi)錯(cuò)。可線程傳回來(lái)之前你創(chuàng)建的線程可能就已經(jīng)結(jié)束了,你要考慮和設(shè)計(jì)
            上海-千層(670825328)  13:13:36
            這個(gè)handle也要close
            - -。(583214826)  13:13:54
            我沒(méi)找到什么 distoryThread之類的函數(shù)
            杯水車薪(1729751029)  13:13:58
            算了,先用著吧。等死機(jī)了再debug
            - -。(583214826)  13:14:21
            TerminateThread(thread1, 0);
            CloseHandle(thread1);

            - -。(583214826)  13:14:25
            是不是這兩個(gè)
            武漢-Error<errorcpp@qq.com>  13:14:34
            千城
            上海-千層(670825328)  13:14:43
            多線程你想debug????????把大姨媽調(diào)出來(lái)了也調(diào)不出問(wèn)題在哪
            武漢-Error<errorcpp@qq.com>  13:14:48
            你說(shuō)的是 CreateThread 之后必須要 closeHandle把
            武漢-Error<errorcpp@qq.com>  13:14:57
            我記得用_beginthread是不需要的啊?
            武漢-Error<errorcpp@qq.com>  13:15:00
            難道我記錯(cuò)了?
            - -。(583214826)  13:15:14
            _beginthread返回了一個(gè)ptr
            - -。(583214826)  13:15:23
            我想應(yīng)該是用作關(guān)閉的
            武漢-Error<errorcpp@qq.com>  13:15:49
            永遠(yuǎn)不要在線程外部強(qiáng)制關(guān)閉線程
            - -。(583214826)  13:15:57
            嗯,好
            上海-千層(670825328)  13:16:37
            我就是用這個(gè)函數(shù),以前試過(guò)不close,連續(xù)運(yùn)行10幾個(gè)小時(shí),最后handle沒(méi)有了,出錯(cuò)了。一開(kāi)始都是好的。
            武漢-Error<errorcpp@qq.com>  13:17:20
            嗯 受教了 
            杯水車薪(1729751029)  13:19:04

            武漢-Error<errorcpp@qq.com>  13:19:08
            如果用pthread 之類
            武漢-Error<errorcpp@qq.com>  13:19:15
            是不需要這么麻煩的吧
            杯水車薪(1729751029)  13:19:24
            好。事情完了。
            不過(guò)這個(gè)人的確讓我們不爽,提議T之
            - -。(583214826)  13:20:21
            首先要澄清一個(gè)問(wèn)題,那就是CreateThread是Windows的API函數(shù),而_beginthread和_beginthreadex則是CRT庫(kù)函數(shù),查看這兩個(gè)CRT函數(shù)的代碼可以得知其實(shí)它們內(nèi)部是調(diào)用的CreateThread(這很顯然嘛,CRT庫(kù)也是要運(yùn)行在Windows上)。

            這兩個(gè)CRT函數(shù)與CreateThread有什么區(qū)別呢?區(qū)別在于這兩個(gè)CRT函數(shù)針對(duì)其它CRT庫(kù)函數(shù),特別是那些涉及內(nèi)存分配的CRT函數(shù)做了特殊的處理。直接在CreateThread API創(chuàng)建的線程中使用sprintf,malloc,strcat等涉及CRT存儲(chǔ)堆操作的CRT庫(kù)函數(shù)是很危險(xiǎn)的,容易造成線程的意外中止。 在使用_beginthread和_beginthreadex創(chuàng)建的線程中可以安全的使用CRT函數(shù),但是必須在線程結(jié)束的時(shí)候相應(yīng)的調(diào)用_endthread或_endthreadex。雖然都是內(nèi)部調(diào)用CreateThread API創(chuàng)建線程,但是這兩個(gè)函數(shù)還是有很大的區(qū)別。首先,_beginthreadex函數(shù)比_beginthread函數(shù)多了三個(gè)參數(shù),使它看起來(lái)更像CreateThread而不是同胞兄弟_beginthread;其次,_beginthread要求線程函數(shù)是__cdecl調(diào)用約定,并且沒(méi)有返回值,而_beginthreadex則要求線程函數(shù)是__stdcall調(diào)用約定并且返回線程的退出碼;第三,與_beginthread成對(duì)調(diào)用的_endthread函數(shù)內(nèi)部隱式的調(diào)用CloseHandle關(guān)閉了線程句柄,而與_beginthreadex成對(duì)使用的_endthreadex則沒(méi)有關(guān)閉線程的句柄,需要顯示的調(diào)用CloseHandle關(guān)閉線程句柄;最后,這兩個(gè)函數(shù)在執(zhí)行成功時(shí)返回線程的句柄,可以通過(guò)這個(gè)句柄調(diào)用其它線程相關(guān)的API,比如SetThreadPriority,ResumeThread等等。但是執(zhí)行失敗時(shí)返回值是不同的,_beginthread返回 -1 表示失敗,而_beginthreadex返回 0 表示失敗。

            武漢-Error<errorcpp@qq.com>  13:17:39
            今天討論一個(gè)問(wèn)題
            武漢-Error<errorcpp@qq.com>  13:17:44
            關(guān)于線程的
            武漢-Error<errorcpp@qq.com>  13:17:59
            //Create a new thread.
               HANDLE hThread = CreateThread(NULL, 0, SecondThread,
                  (PVOID)&x, 0, &dwThreadId);

               //We don't reference the new thread anymore,
               //so close our handle to it.
               closeHandle(hThread);


            武漢-Error<errorcpp@qq.com>  13:18:08
            這是Windows核心編程的一段代碼
            武漢-Error<errorcpp@qq.com>  13:18:23
            為啥 CreateThread后面要跟一個(gè)closehandle
            南昌-貝貝(1125591)  13:19:49
            創(chuàng)建線程后,線程有個(gè)內(nèi)核對(duì)象,句柄的存在對(duì)于內(nèi)核對(duì)象的計(jì)數(shù)+1.關(guān)閉句柄以便減少計(jì)數(shù).線程退出時(shí)這個(gè)內(nèi)核對(duì)象就刪除.
            北京-li(76433692)  13:22:06
            意味著:句柄不作close 線程退出時(shí) 內(nèi)核對(duì)象不自動(dòng)刪除?需要手工刪除?
            北京-li(76433692)  13:22:48
            創(chuàng)建時(shí)如果不close,在退出線程時(shí)候close也是可以的吧?
            武漢-Error<errorcpp@qq.com>  13:23:58
            貝妞處理這類場(chǎng)景的規(guī)范是啥
            南昌-貝貝(1125591)  13:24:29
            內(nèi)核對(duì)象中保存與線程有關(guān)的數(shù)據(jù)
            有句柄存在,這個(gè)數(shù)據(jù)的引用計(jì)數(shù)就+1
            如果不關(guān)閉.那么就一直可以通過(guò)這個(gè)句柄操作數(shù)據(jù)結(jié)構(gòu),操作線程
            不關(guān)閉的話,內(nèi)核對(duì)象在進(jìn)程退出前永不減少引用.引用為0時(shí)才刪除線程內(nèi)核對(duì)象.  如果你不用它,又不 CloseHandle 線程又退出了, 這樣內(nèi)核對(duì)象還在,就好比是有內(nèi)存泄漏一樣
            武漢-Error<errorcpp@qq.com>  13:25:08
            用pthread之類的庫(kù)不會(huì)有這樣的問(wèn)題吧
            南昌-貝貝(1125591)  13:25:09
            哥哥我通常保留到句柄...以便以后操作, 在線程退出時(shí)再刪除(以后不用操作它的時(shí)候,就直接CloseHandle
            武漢-Error<errorcpp@qq.com>  13:25:30
             在線程退出時(shí)再刪除

            是自己刪除么?
            武漢-Error<errorcpp@qq.com>  13:25:37
            還是啟動(dòng)線程負(fù)責(zé)刪除
            南昌-貝貝(1125591)  13:25:35
            是自己刪除
            南昌-貝貝(1125591)  13:25:43
            系統(tǒng)給你刪除唄
            武漢-Error<errorcpp@qq.com>  13:25:53
            return 之前  closehandle?
            南昌-貝貝(1125591)  13:26:04
            你不用操作這個(gè)線程了就 CloseHandle
            武漢-Error<errorcpp@qq.com>  13:28:24
            就是線程外部整的,,,

            也就是貝妞基本上都是要帶一個(gè) 線程管理模塊
            武漢-Error<errorcpp@qq.com>  13:28:33
            還是貝妞專業(yè)啊
            武漢-Error<errorcpp@qq.com>  13:28:40
            o(︶︿︶)o 唉,,,

            我才注意到這個(gè)問(wèn)題

            中山-瘋子(510776002)  13:38:11
            當(dāng)程序調(diào)用CreateThread函數(shù)時(shí),首先系統(tǒng)為線程建立一個(gè)用來(lái)管理線程的數(shù)據(jù)結(jié)構(gòu),其中包含線程的一些統(tǒng)計(jì)信息,如引用計(jì)數(shù)和退出碼等,這個(gè)數(shù)據(jù)結(jié)構(gòu)被稱為線程對(duì)象;接下來(lái)系統(tǒng)將從進(jìn)程的地址空間中為線程的堆棧分配內(nèi)存并開(kāi)始線程的執(zhí)行。當(dāng)線程結(jié)束時(shí),線程的堆棧被釋放,但是線程對(duì)象不會(huì)馬上被釋放,系統(tǒng)保留它以便其他線程可以通過(guò)它檢測(cè)線程的有關(guān)情況,直到使用CloseHandle函數(shù)關(guān)閉線程句柄后,線程對(duì)象才會(huì)被釋放。

            但是線程對(duì)象也可以提前被釋放,對(duì)于大部分的句柄來(lái)說(shuō)(如文件句柄hFile,文件尋找句柄hFindFile等),使用CloseHandle函數(shù)關(guān)閉句柄意味著整個(gè)對(duì)象被釋放,但對(duì)于線程句柄來(lái)說(shuō),關(guān)閉它僅釋放線程的統(tǒng)計(jì)信息,并不會(huì)終止線程的執(zhí)行,所以如果不再需要使用線程句柄的話,在調(diào)用CreateThread后馬上就可以將它關(guān)閉掉,線程的執(zhí)行并不會(huì)受影響。

             

            posted on 2011-12-19 13:36 Enic 閱讀(925) 評(píng)論(0)  編輯 收藏 引用 所屬分類: VC路上的坑
            国产精品女同久久久久电影院| 热RE99久久精品国产66热| 久久天天躁狠狠躁夜夜网站| 欧美伊人久久大香线蕉综合| 思思久久好好热精品国产| 麻豆久久久9性大片| 久久综合九色综合97_久久久| 99久久人人爽亚洲精品美女| 久久综合亚洲色HEZYO社区| 国产精品一区二区久久精品| 欧洲性大片xxxxx久久久| 久久99精品久久只有精品| 久久影视国产亚洲| 久久性生大片免费观看性| 国产成人久久AV免费| 丰满少妇高潮惨叫久久久| 亚洲熟妇无码另类久久久| 久久久无码精品午夜| 久久亚洲电影| 亚洲一区精品伊人久久伊人| 日本精品一区二区久久久| 国产毛片久久久久久国产毛片 | 久久精品蜜芽亚洲国产AV| 欧美亚洲国产精品久久高清| 久久精品国产免费观看三人同眠| 亚洲欧洲精品成人久久曰影片 | 久久精品国产亚洲AV忘忧草18| 2020最新久久久视精品爱| 久久99精品九九九久久婷婷| 精品久久人人妻人人做精品| 久久亚洲av无码精品浪潮| 久久久久高潮毛片免费全部播放 | 国产高潮国产高潮久久久| 狠狠色丁香婷综合久久| 伊人久久一区二区三区无码| 国产亚洲精品久久久久秋霞| 伊人色综合久久天天| 久久66热人妻偷产精品9| 人妻少妇精品久久| 国产福利电影一区二区三区久久久久成人精品综合 | 久久亚洲高清综合|