<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Win32多線程程序設計-同步控制 ``` #include "pch.h" //#include <iostream> #include "windows.h" #include "stdio.h" bool flag; CRITICAL_SECTION cs; DWORD WINAPI Thread1_Proc(PVOID pvParam) { while (1) { do { ; } while (1 == flag); EnterCriticalSection(&cs); printf("Hello,"); LeaveCriticalSection(&cs); flag = 1; Sleep(50); } } DWORD WINAPI Thread2_Proc(PVOID pvParam) { while (1) { do { ; } while (0 == flag); EnterCriticalSection(&cs); printf("World!\n"); LeaveCriticalSection(&cs); flag = 0; Sleep(50); } } int main(int argc, char* argv[]) { DWORD nID; InitializeCriticalSection(&cs); CreateThread(NULL, 0, Thread1_Proc, NULL, 0, NULL); CreateThread(NULL, 0, Thread2_Proc, NULL, 0, NULL); while (1) { ; } DeleteCriticalSection(&cs); return 0; } ``` //改進了一下!: ``` #include "pch.h" //#include <iostream> #include "windows.h" #include "stdio.h" char flagc = '.';// | ';// .'; bool flag; CRITICAL_SECTION cs; DWORD WINAPI Thread1_Proc(PVOID pvParam) { while (1) { // while (1 == flag); while ('.' == flagc) { Sleep(1);} EnterCriticalSection(&cs); printf("["); for (int i = 0; i < 19159; ++i) { printf("."); //printf("[%d]" , i); }//[i%d]", i); } printf("]\r\n"); LeaveCriticalSection(&cs); flagc = '.';// flag = 1; Sleep(50); } } DWORD WINAPI Thread2_Proc(PVOID pvParam) { while (1) { while ('|' == flag) { Sleep(2);}//while (0 == flag) { Sleep(2);} EnterCriticalSection(&cs); printf("<"); for(int j=0;j<9149;++j) {printf("|%d|",j);} printf(">\r\n"); LeaveCriticalSection(&cs); flagc = '|';// flag = 0; Sleep(50); } } int main(int argc, char* argv[]) { DWORD nID; InitializeCriticalSection(&cs); CreateThread(NULL, 0, Thread1_Proc, NULL, 0, NULL); CreateThread(NULL, 0, Thread2_Proc, NULL, 0, NULL); while (1) { ; } DeleteCriticalSection(&cs); return 0; }//main() ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看