TC官方合作论坛

 找回密码
 立即注册

TC5-4.3线程临界区问题

查看数: 925 | 评论数: 9 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-4-10 22:10

正文摘要:

本帖最后由 PGhuman 于 2015-4-10 22:13 编辑 注释掉 进入临界区 或 注释掉 离开临界区 或者把 离开临界区 放到第 15或20或25 行,调试结果全都一样。。var handle0=0 var handle=array() function test_init() &nbs ...

回复

1106752189 发表于 2015-4-11 12:08:34
PGhuman 发表于 2015-4-11 12:03
把threadwaitfor(handlel,-1)  注释掉后有效果,但是线程的顺序会乱,
可能先运行i=2,也可能是i=1,for ...

   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
//这样你就很明显很看到了   
1106752189 发表于 2015-4-11 12:07:19
PGhuman 发表于 2015-4-11 12:03
把threadwaitfor(handlel,-1)  注释掉后有效果,但是线程的顺序会乱,
可能先运行i=2,也可能是i=1,for ...

那是离开临界区后代码出现凌乱   在临界区里不会呀
PGhuman 发表于 2015-4-11 12:03:29
1106752189 发表于 2015-4-11 09:54
在把threadwaitfor(handlel,-1)  注释掉

把threadwaitfor(handlel,-1)  注释掉后有效果,但是线程的顺序会乱,
可能先运行i=2,也可能是i=1,for循环不代表线程会按照i的顺序到达调用的功能。。
1106752189 发表于 2015-4-11 09:54:19
在把threadwaitfor(handlel[i],-1)  注释掉
tempbb1234 发表于 2015-4-11 09:38:22
临界区别用,用事件。
zxw445 发表于 2015-4-11 00:03:48
   删除临界区,只有退出脚本或者不使用临界区了才进行删除。

你启动线程完后,就直接删除临界区了。你自己分析代码。
kevinqq 发表于 2015-4-10 23:58:12
把删除临界区的代码注释起来
关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-20 23:10 , Processed in 0.166095 second(s), 28 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表