[問題] thread中斷點調式後的結果與執行不同

作者: kdok123 (小天)   2014-09-28 10:02:51
//使用PluseEvent()函數
#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <windows.h>
HANDLE g_hThreadEvent;
//快線程
unsigned int __stdcall FastThreadFun(void *pPM)
{
Sleep(10); //用這個來保證各線程調用等待函數的次序有一定的隨機性
printf("%s 啟動\n", (PSTR)pPM);
WaitForSingleObject(g_hThreadEvent, INFINITE);
printf("%s 等到事件被觸發 順利結束\n", (PSTR)pPM);
return 0;
}
//慢線程
unsigned int __stdcall SlowThreadFun(void *pPM)
{
Sleep(100);
printf("%s 啟動\n", (PSTR)pPM);
WaitForSingleObject(g_hThreadEvent, INFINITE);
printf("%s 等到事件被觸發 順利結束\n", (PSTR)pPM);
return 0;
}
int main()
{
printf(" 使用PluseEvent()函數\n");
printf("
作者: kdok123 (小天)   2014-09-28 10:10:00
另外中間那段Sleep(50),我試過縮短成Sleep(20)也幾乎每次都可以讓五個快線程跑完,請問在設計的時候有沒有一個最佳的Sleep時間可以確保快線程都跑完的??
作者: x000032001 (版廢了該走了)   2014-09-28 11:24:00
為什麼你寫concurrency程式卻用sequential思考@@
作者: kdok123 (小天)   2014-09-28 14:49:00
最近剛學thread... 這是網路上看到的一個例子
作者: Sex5F (HTC)   2014-09-28 15:26:00
thread_A為何要和thread_b一起結束? 有交互關係嗎?
作者: kdok123 (小天)   2014-09-29 09:39:00
這個程式主要是要顯示pulse_event後會放行一個線程然後慢線程因為sleep太久而無法被event觸發

Links booklink

Contact Us: admin [ a t ] ucptt.com