• <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>
            隨筆-5  評論-1  文章-0  trackbacks-0
            1.用事件對象來控制線程
            //Define thread function
            DWORD __stdcall ThreadFunOne(LPVOID lParam)
            {
                
            for(;;)
                {
                    WaitForSingleObject(hEvent, INFINITE);      
            //阻塞線程,直到事件對象為通知狀態
                    if (WorkerID<MAXWORKERID)
                    {

                        WorkerID 
            +=1;
                        Sleep(
            1000);
                        printf(
            "ThreadOne print out: %i \n",WorkerID);
                    }
                    SetEvent(hEvent);       
            //設置事件為通知狀態
                }    
                
            return 0;
            }
            DWORD __stdcall ThreadFunTwo(LPVOID lParam)
            {
                
            for(;;)
                {
                    WaitForSingleObject(hEvent, INFINITE);
                    
            if (WorkerID<MAXWORKERID)
                    {
                        WorkerID 
            +=1;
                        printf(
            "ThreadTwo print out: %i \n",WorkerID);
                        Sleep(
            1000);
                    }
                    SetEvent(hEvent);
                }
                
            return 0;
            }
            void main()
            {
                
            //Define thread handle
                HANDLE hThread1,hThread2;
                hEvent 
            = CreateEvent(NULL, FALSE, TRUE, "Event");
                
            //Create thread
                hThread1 = ::CreateThread(NULL,0,ThreadFunOne,NULL,0,NULL);
                hThread2 
            = ::CreateThread(NULL,0,ThreadFunTwo,NULL,0,NULL);
                
            //Close thread handle
                CloseHandle(hThread1);
                CloseHandle(hThread2);
                
            //Note: Prevent process exiting
                while (true)
                {
                    ;
                }
            }

            2.用臨界區來控制線程
            DWORD __stdcall ThreadFunOne(LPVOID lParam)
            {
                
            for(;;)
                {
                    EnterCriticalSection(
            &Section);
                    
            if (WorkerID<MAXWORKERID)
                    {

                        WorkerID 
            +=1;
                        Sleep(
            1000);
                        printf(
            "ThreadOne print out: %i \n",WorkerID);
                    }
                    LeaveCriticalSection(
            &Section);
                }
                
            return 0;
            }
            DWORD __stdcall ThreadFunTwo(LPVOID lParam)
            {
                
            for(;;)
                {
                    EnterCriticalSection(
            &Section);
                    
            if (WorkerID<MAXWORKERID)
                    {
                        WorkerID 
            +=1;
                        printf(
            "ThreadTwo print out: %i \n",WorkerID);
                        Sleep(
            1000);
                    }
                    LeaveCriticalSection(
            &Section);
                }
                
            return 0;
            }
            void main()
            {
                
            //Define thread handle
                HANDLE hThread1,hThread2;
                InitializeCriticalSection(
            &Section);
                
            //Create thread
                hThread1 = ::CreateThread(NULL,0,ThreadFunOne,NULL,0,NULL);
                hThread2 
            = ::CreateThread(NULL,0,ThreadFunTwo,NULL,0,NULL);
                
            //Close thread handle
                CloseHandle(hThread1);
                CloseHandle(hThread2);
                
            //Note: Prevent process exiting
                while (true)
                {
                    ;
                }
            }

            3.用互斥來控制線程
            DWORD __stdcall ThreadFunOne(LPVOID lParam)
            {
                
            for(;;)
                {
                    WaitForSingleObject(hMutex, INFINITE);
                    
            if (WorkerID<MAXWORKERID)
                    {

                        WorkerID 
            +=1;
                        Sleep(
            1000);
                        printf(
            "ThreadOne print out: %i \n",WorkerID);
                    }
                    ReleaseMutex(hMutex);
                }
                
            return 0;
            }
            DWORD __stdcall ThreadFunTwo(LPVOID lParam)
            {
                
            for(;;)
                {
                    WaitForSingleObject(hMutex, INFINITE);
                    
            if (WorkerID<MAXWORKERID)
                    {
                        WorkerID 
            +=1;
                        printf(
            "ThreadTwo print out: %i \n",WorkerID);
                        Sleep(
            1000);
                    }
                    ReleaseMutex(hMutex);
                }
                
            return 0;
            }
            void main()
            {
                
            //Define thread handle
                HANDLE hThread1,hThread2;
                hMutex 
            = CreateMutex(NULL, FALSE, "mutex");
                
            //Create thread
                hThread1 = ::CreateThread(NULL,0,ThreadFunOne,NULL,0,NULL);
                hThread2 
            = ::CreateThread(NULL,0,ThreadFunTwo,NULL,0,NULL);
                
            //Close thread handle
                CloseHandle(hThread1);
                CloseHandle(hThread2);
                
            //Note: Prevent process exiting
                while (true)
                {
                    ;
                }
            }
            posted on 2009-07-25 22:48 yunboy 閱讀(274) 評論(0)  編輯 收藏 引用 所屬分類: 進程與線程
            国内精品久久久久久99蜜桃| 人妻少妇精品久久| 久久久久无码精品国产不卡| 亚洲欧美日韩中文久久| 久久精品无码午夜福利理论片| 亚洲成色999久久网站| 欧美粉嫩小泬久久久久久久| AV无码久久久久不卡蜜桃| 久久福利青草精品资源站免费| 久久精品国产亚洲AV不卡| 亚洲欧美成人综合久久久| 久久国产成人午夜aⅴ影院| 久久精品亚洲中文字幕无码麻豆| 日韩一区二区久久久久久| 日韩乱码人妻无码中文字幕久久 | 久久精品亚洲欧美日韩久久| 亚洲综合久久久| 久久久久国产一级毛片高清版| 免费无码国产欧美久久18| 久久高潮一级毛片免费| 国内精品伊人久久久久av一坑 | 嫩草影院久久99| 久久AV高潮AV无码AV| 四虎国产精品成人免费久久| 国产精品99久久久久久宅男| a高清免费毛片久久| 亚洲AV日韩AV天堂久久| 久久久人妻精品无码一区| 国产精品日韩欧美久久综合| a级毛片无码兔费真人久久| 久久久精品国产sm调教网站| 国产aⅴ激情无码久久| 香蕉久久夜色精品国产尤物| 久久久久亚洲?V成人无码| 国产精品美女久久久网AV| 99久久精品免费观看国产| 品成人欧美大片久久国产欧美... 品成人欧美大片久久国产欧美 | 国产激情久久久久影院小草| 99久久精品国产一区二区三区 | 精品久久久久久久国产潘金莲| 国产精品成人久久久久三级午夜电影 |