• <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>

            Khan's Notebook GCC/GNU/Linux Delphi/Window Java/Anywhere

            路漫漫,長(zhǎng)修遠(yuǎn),我們不能沒(méi)有錢
            隨筆 - 173, 文章 - 0, 評(píng)論 - 257, 引用 - 0
            數(shù)據(jù)加載中……

            最簡(jiǎn)單的windows 多線程代碼

            //mingw 3.02編譯通過(guò)

            ?1 #include? < stdio.h >
            ?2 #include? < stdlib.h >
            ?3 #include? < windows.h >
            ?4 #include? < openssl / md5.h >
            ?5
            ?6 typedef? void ? * PVOID;
            ?7 typedef? void ? * LPVOID;
            ?8
            ?9
            10 DWORD?WINAPI?ThreadFunc(LPVOID);
            11
            12 int ?main() {
            13 ??HANDLE?hThrd1;
            14 ??HANDLE?hThrd2;
            15 ??DWORD?exitCode1? = ? 0 ;??
            16 ??DWORD?exitCode2? = ? 0 ;
            17 ??DWORD?threadId;
            18
            19
            20 ?? /* hThread?=?CreateThread?(&security_attributes,?dwStackSize,?ThreadProc,pParam,?dwFlags,?&idThread)?
            21 ???WINBASEAPI?HANDLE?WINAPI?CreateThread(LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,PVOID,DWORD,PDWORD);
            22 ?????第一個(gè)參數(shù)是指向SECURITY_ATTRIBUTES型態(tài)的結(jié)構(gòu)的指針。在Windows?98中忽略該參數(shù)。在Windows?NT中,它被設(shè)為NULL。
            23 ??第二個(gè)參數(shù)是用于新線程的初始堆棧大小,默認(rèn)值為0。在任何情況下,Windows根據(jù)需要?jiǎng)討B(tài)延長(zhǎng)堆棧的大小。
            24 ?????第三個(gè)參數(shù)是指向線程函數(shù)的指標(biāo)。函數(shù)名稱沒(méi)有限制,但是必須以下列形式聲明:DWORD?WINAPI?ThreadProc?(PVOID?pParam)?;
            25 ?????第四個(gè)參數(shù)為傳遞給ThreadProc的參數(shù)。這樣主線程和從屬線程就可以共享數(shù)據(jù)。
            26 ?????第五個(gè)參數(shù)通常為0,但當(dāng)建立的線程不馬上執(zhí)行時(shí)為旗標(biāo)
            27 ?????第六個(gè)參數(shù)是一個(gè)指針,指向接受執(zhí)行緒ID值的變量
            28 ?? */

            29 ??hThrd1? = ?CreateThread(NULL,? 0 ,?ThreadFunc,?(LPVOID) 1 ,? 0 ,? & threadId?); // 建立第一個(gè)線程
            30 ?? if ?(hThrd1)
            31 ????printf( " Thread?1?執(zhí)行\(zhòng)n " );
            32
            33 ??hThrd2? = ?CreateThread(NULL,? 0 ,?ThreadFunc,?(LPVOID) 2 ,? 0 ,? & threadId?);
            34 ?? if ?(hThrd2)
            35 ????printf( " Thread?2?執(zhí)行\(zhòng)n " );
            36
            37 ?? // ?Keep?waiting?until?both?calls?to?GetExitCodeThread?succeed?AND
            38 ?? // ?neither?of?them?returns?STILL_ACTIVE.
            39 ?? for ?(;;)? {
            40 ????printf( " 按任意鍵退出..\n " );
            41 ????getchar();
            42 ???? // WaitForSingleObject();
            43 ????GetExitCodeThread(hThrd1,? & exitCode1); // 取得線程函數(shù)的返回值
            44 ????GetExitCodeThread(hThrd2,? & exitCode2);
            45 ???? if ?(?exitCode1? == ?STILL_ACTIVE?)
            46 ??????puts( " Thread?1?正在執(zhí)行狀態(tài)! " );
            47 ???? if ?(?exitCode2? == ?STILL_ACTIVE?)
            48 ??????puts( " Thread?2?正在執(zhí)行狀態(tài)! " );
            49
            50 ???? if ?(?exitCode1? != ?STILL_ACTIVE? && ?exitCode2? != ?STILL_ACTIVE?)
            51 ????? break ;
            52 ??}

            53
            54 ??CloseHandle(hThrd1);
            55 ??CloseHandle(hThrd2);
            56
            57 ??printf( " Thread?1?returned?%d\n " ,?exitCode1);
            58 ??printf( " Thread?2?returned?%d\n " ,?exitCode2);
            59 ??getchar();
            60 ?? return ? 0 ; // EXIT_SUCCESS;
            61 }

            62
            63 /*
            64 *?Take?the?startup?value,?do?some?simple?math?on?it,
            65 *?and?return?the?calculated?value.
            66 */

            67 DWORD?WINAPI?ThreadFunc(LPVOID?n) {
            68 ??Sleep((DWORD)n * 1000 * 2 );
            69 ??printf( " Thread?%d?正在執(zhí)行\(zhòng)n " ,n);
            70 ?? return ?(DWORD)n? * ? 10 ;
            71 }

            72

            posted on 2006-07-28 08:20 Khan 閱讀(3391) 評(píng)論(0)  編輯 收藏 引用 所屬分類: GCC/G++

            2020最新久久久视精品爱| 人妻中文久久久久| 久久久久国产精品嫩草影院| 久久99精品久久久久婷婷| 日本精品久久久久影院日本 | 久久精品水蜜桃av综合天堂| 亚洲国产成人久久精品99 | 青青青青久久精品国产h| 久久青青草原精品国产| 久久电影网| 久久综合九色综合欧美就去吻| 国产精品嫩草影院久久| 精品久久久久久无码免费| 亚洲国产精品无码久久一区二区 | 新狼窝色AV性久久久久久| 久久精品国产第一区二区| 久久久久亚洲av无码专区| 无码人妻少妇久久中文字幕| 69久久夜色精品国产69| 久久福利青草精品资源站免费| 国产精品久久久久影视不卡 | 久久99精品久久久久久9蜜桃| 亚洲va久久久噜噜噜久久男同| 久久97久久97精品免视看秋霞| 成人免费网站久久久| 亚洲国产精品无码久久久秋霞2| 欧美一级久久久久久久大片| 伊人热人久久中文字幕| 青草影院天堂男人久久| 精品国产VA久久久久久久冰| 亚洲va久久久噜噜噜久久男同 | 久久久99精品成人片中文字幕| 99久久99久久| 国产精品一区二区久久不卡| 欧美亚洲色综久久精品国产| 精品久久久久久亚洲| 精品综合久久久久久888蜜芽| 亚洲AV无码久久精品蜜桃| 久久综合国产乱子伦精品免费| 亚洲人成伊人成综合网久久久| 久久精品国产精品青草|