[问题] 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