• <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++
            精品国产91久久久久久久a| 久久AV高潮AV无码AV| 色婷婷噜噜久久国产精品12p| 中文字幕精品久久| 久久精品国产秦先生| 亚洲精品WWW久久久久久| av无码久久久久不卡免费网站| 国产精品亚洲美女久久久| 日日躁夜夜躁狠狠久久AV| 久久无码AV中文出轨人妻| 久久久久久亚洲Av无码精品专口 | 久久精品国产久精国产一老狼| 欧美黑人又粗又大久久久| 日韩欧美亚洲国产精品字幕久久久| 久久午夜无码鲁丝片| 国产精品久久久久免费a∨| 色综合久久综合网观看| 乱亲女H秽乱长久久久| 色综合久久夜色精品国产| 久久人人爽人人爽人人片AV麻豆| 久久精品国产色蜜蜜麻豆| 一本综合久久国产二区| 日韩亚洲欧美久久久www综合网 | 久久久久国产视频电影| 久久亚洲精品成人AV| 亚洲国产一成人久久精品| 久久亚洲中文字幕精品一区| 亚洲а∨天堂久久精品9966| 久久中文字幕无码专区 | 伊人热热久久原色播放www| 精品久久久久国产免费| 国产成人精品久久亚洲高清不卡 | 中文字幕久久欲求不满| 欧美亚洲国产精品久久蜜芽| 91久久精品电影| 久久人人爽人人澡人人高潮AV| 久久露脸国产精品| 一本久久a久久精品亚洲| 日韩精品久久久久久免费| 久久被窝电影亚洲爽爽爽| 国产高潮久久免费观看|