PGhuman 发表于 2015-4-11 12:03 criticalenter(handle0)//进入临界区 for(var i = 0; i < 3; i++) traceprint(“进入临界区”&k&":"&i) sleep(1000) end criticalleave(handle0)//离开临界区 for(var i = 0; i < 3; i++) traceprint(“离开临界区”&k&":"&(i+3)) sleep(1000) end //这样你就很明显很看到了 |
PGhuman 发表于 2015-4-11 12:03 那是离开临界区后代码出现凌乱 在临界区里不会呀 |
1106752189 发表于 2015-4-11 09:54 把threadwaitfor(handlel,-1) 注释掉后有效果,但是线程的顺序会乱, 可能先运行i=2,也可能是i=1,for循环不代表线程会按照i的顺序到达调用的功能。。 |
在把threadwaitfor(handlel[i],-1) 注释掉 |
临界区别用,用事件。 |
你启动线程完后,就直接删除临界区了。你自己分析代码。 |
把删除临界区的代码注释起来 |
GMT+8, 2025-9-20 23:10 , Processed in 0.166095 second(s), 28 queries .
Powered by 海安天坑软件科技有限公司
© 2001-2013 Comsenz Inc.