• <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 閱讀(258) 評論(0)  編輯 收藏 引用 所屬分類: C/C++
            久久天天躁狠狠躁夜夜2020一| 久久天天躁狠狠躁夜夜躁2O2O| 国产精品永久久久久久久久久| 亚洲成人精品久久| 欧美久久久久久精选9999| 波多野结衣久久| 久久精品国产只有精品2020| 国产成人久久久精品二区三区| 亚洲国产成人久久笫一页| 久久ww精品w免费人成| 日本久久中文字幕| 99精品久久精品一区二区| 一本久道久久综合狠狠躁AV| 国产精品久久久久久| 久久久国产打桩机| 99久久久久| 97久久久精品综合88久久| 综合久久一区二区三区| 久久久青草青青亚洲国产免观| 99精品国产综合久久久久五月天 | 国产精品伦理久久久久久| 久久久亚洲AV波多野结衣| 一级做a爱片久久毛片| 九九精品99久久久香蕉| 三级三级久久三级久久| 日本精品一区二区久久久| 国产亚洲精午夜久久久久久| 99精品久久久久中文字幕| 久久婷婷激情综合色综合俺也去| 久久久精品国产| 亚洲精品白浆高清久久久久久| 色婷婷狠狠久久综合五月| 久久人人爽人人爽人人片AV麻豆| 久久e热在这里只有国产中文精品99| 91精品国产综合久久久久久| 99久久人妻无码精品系列蜜桃| 久久久噜噜噜久久中文福利| 精品久久久噜噜噜久久久 | 精品综合久久久久久97超人| 久久精品麻豆日日躁夜夜躁| 精品无码久久久久久午夜|