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

            huangyi5209

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              0 Posts :: 13 Stories :: 0 Comments :: 0 Trackbacks

            常用鏈接

            留言簿

            我參與的團隊

            搜索

            •  

            最新評論

            線程同步(for Win32)

            #include <windows.h>
            #include 
            <iostream>

            using namespace std;

            static int g_n;
            CRITICAL_SECTION m_cs;

            UINT ThreadOne(LPVOID lParam)
            {
                EnterCriticalSection(
            &m_cs);

                
            for (int i = 0; i < 10; i++)
                
            {
                    g_n
            ++;
                    cout
            <<"Thread 1:"<<g_n<<"\n";
                }

                LeaveCriticalSection(
            &m_cs);
                
            return 0;
            }


            UINT ThreadTwo(LPVOID lParam)
            {
                EnterCriticalSection(
            &m_cs);

                
            for (int i = 0; i < 10; i++)
                
            {
                    g_n
            ++;
                    cout
            <<"Thread 2:"<<g_n<<"\n";
                }

                LeaveCriticalSection(
            &m_cs);
                
            return 0;
            }


            int main()
            {
                HANDLE hThrd[
            2];
                DWORD IDThread1,IDThread2;

                InitializeCriticalSection(
            &m_cs);
                
                hThrd[
            0= CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadOne, (LPVOID)NULL, 0&IDThread1);
                hThrd[
            1= CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadTwo, (LPVOID)NULL, 0&IDThread1);

                WaitForMultipleObjects(
            2, hThrd, TRUE, INFINITE);
                DeleteCriticalSection(
            &m_cs);

                system(
            "pause");
                
            return 0;
            }

            線程同步(for MFC)
            #include "win32_mfc.h"
            #include 
            <afxmt.h>
            #include 
            <iostream>

            #ifdef _DEBUG
            #define new DEBUG_NEW
            #endif

            // 唯一的應用程序對象

            CWinApp theApp;

            using namespace std;

            CCriticalSection c_s;
            static int g_C;

            UINT ThreadFunction1(LPVOID lParam)
            {
                CSingleLock 
            lock(&c_s);

                
            lock.Lock();

                
            for (int i = 0; i < 10; i++)
                
            {
                    g_C
            ++;
                    cout
            <<  "Thread 1 : " << g_C << endl;
                }

                
            lock.Unlock();
                
            return 0;
            }


            UINT ThreadFunction2(LPVOID lParam)
            {
                CSingleLock 
            lock(&c_s);

                
            lock.Lock();

                
            for (int i = 0; i < 10; i++)
                
            {
                    g_C
            ++;
                    cout
            <<  "Thread 2 : " << g_C << endl;
                }

                
            lock.Unlock();
                
            return 0;
            }


            int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
            {
                
            int nRetCode = 0;

                
            // 初始化 MFC 并在失敗時顯示錯誤
                if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
                
            {
                    
            // TODO: 更改錯誤代碼以符合您的需要
                    _tprintf(_T("錯誤: MFC 初始化失敗\n"));
                    nRetCode 
            = 1;
                }

                
            else
                
            {
                    
            // TODO: 在此處為應用程序的行為編寫代碼。
                    CWinThread *Thread[2];
                    HANDLE hand[
            2];

                    Thread[
            0= AfxBeginThread(ThreadFunction1, (LPVOID)NULL);
                    Thread[
            1= AfxBeginThread(ThreadFunction2, (LPVOID)NULL);

                    
            for (int i = 0; i < 2; i++)
                        hand[i] 
            = Thread[i]->m_hThread;

                    WaitForMultipleObjects(
            2, hand, TRUE, INFINITE);
                }


                system(
            "pause");
                
            return nRetCode;
            }


            posted on 2011-03-06 09:26 huangyi5209 閱讀(263) 評論(0)  編輯 收藏 引用 所屬分類: C/C++
            久久91这里精品国产2020| 亚洲中文字幕无码一久久区| 国产精品视频久久| 国产叼嘿久久精品久久| 色天使久久综合网天天 | 国内精品伊人久久久久妇| 狠狠综合久久综合88亚洲| 国产成人久久精品一区二区三区| 91精品国产9l久久久久| 色悠久久久久久久综合网| 久久精品人人做人人爽电影蜜月| 久久综合久久久| 久久久久久国产精品无码下载 | 2021精品国产综合久久| 久久久久亚洲AV成人网| 亚洲精品tv久久久久久久久| 91精品国产91久久久久久| 久久只有这精品99| 国产呻吟久久久久久久92| 东方aⅴ免费观看久久av| 久久av高潮av无码av喷吹| 日韩精品无码久久久久久| 欧美伊人久久大香线蕉综合69 | 狠狠色丁香久久婷婷综合| 久久精品中文字幕第23页| 国产精品久久午夜夜伦鲁鲁| 99久久精品国产一区二区| 久久久中文字幕日本| 色综合久久中文综合网| 国产美女久久精品香蕉69| 久久综合亚洲色一区二区三区| 欧美日韩精品久久久免费观看| 国产精品久久久久影视不卡| 久久婷婷五月综合97色| 伊人久久大香线蕉综合影院首页| 天天综合久久一二三区| 日韩十八禁一区二区久久| 久久久久亚洲精品男人的天堂| 免费观看久久精彩视频| 99久久精品这里只有精品| 大美女久久久久久j久久|