• <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++
            久久国产精品无码HDAV| 亚洲国产成人久久综合碰| 亚洲va久久久噜噜噜久久狠狠 | 久久丫精品国产亚洲av不卡| 77777亚洲午夜久久多喷| 精品国产一区二区三区久久| 国产香蕉97碰碰久久人人| 久久久午夜精品福利内容| 99999久久久久久亚洲| 久久精品夜色噜噜亚洲A∨| 亚洲AV成人无码久久精品老人| 久久精品国产91久久综合麻豆自制| 午夜精品久久久久9999高清| 伊人久久大香线蕉av一区| 久久精品中文字幕有码| 久久婷婷国产综合精品| 国产成人综合久久精品红| 97超级碰碰碰碰久久久久| 午夜久久久久久禁播电影| 色婷婷综合久久久久中文字幕 | 久久99热这里只有精品国产| 99久久久精品| 久久午夜羞羞影院免费观看 | 色偷偷久久一区二区三区| 欧美精品丝袜久久久中文字幕 | 欧美日韩中文字幕久久久不卡| 伊人久久无码中文字幕| 久久一区二区三区免费| 99久久成人18免费网站| 国产精品久久久久久久久| 欧美午夜精品久久久久免费视 | 亚洲精品97久久中文字幕无码| 天天综合久久久网| 久久精品成人免费看| 99re这里只有精品热久久| 久久国产精品无码一区二区三区 | 久久精品一区二区三区不卡| 久久A级毛片免费观看| 亚洲国产美女精品久久久久∴| 久久久国产精华液| 亚洲精品tv久久久久久久久|