• <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 閱讀(268) 評論(0)  編輯 收藏 引用 所屬分類: C/C++
            日韩精品无码久久久久久| 久久这里只精品国产99热| 日韩精品无码久久一区二区三| 久久人人爽人人爽AV片| 国产A三级久久精品| 国产精品久久久久久福利漫画| 久久精品国产99久久丝袜| 亚洲va久久久噜噜噜久久男同| 久久99国产精品99久久| 思思久久精品在热线热| 久久精品国产亚洲网站| 久久精品国产男包| 日韩中文久久| 久久人妻少妇嫩草AV无码蜜桃| 久久精品国产亚洲AV无码娇色| 一本色道久久88综合日韩精品| 亚洲av成人无码久久精品| 久久九九久精品国产免费直播| 久久国产热精品波多野结衣AV| 久久无码一区二区三区少妇| 国产一级持黄大片99久久| 亚洲中文字幕无码一久久区| 日本精品久久久久影院日本| 久久99精品久久久久久秒播| 亚洲国产精品久久久久久| 99麻豆久久久国产精品免费| 亚洲av日韩精品久久久久久a| 精品久久久久久中文字幕大豆网| 亚洲伊人久久成综合人影院 | 色综合久久久久综合99| 久久久久久综合一区中文字幕| 久久夜色精品国产噜噜噜亚洲AV| 久久伊人精品一区二区三区| 亚洲欧美国产日韩综合久久| 色婷婷久久久SWAG精品| 亚洲日本va午夜中文字幕久久| 一级女性全黄久久生活片免费 | 国产精品久久久久久搜索| 国产美女久久精品香蕉69| 人妻无码中文久久久久专区| 久久精品99久久香蕉国产色戒|