TC官方合作论坛
标题:
没有互斥锁的多线程就不是真正的多线程~问题已解决!
[打印本页]
作者:
九先生
时间:
2012-2-14 08:29
标题:
没有互斥锁的多线程就不是真正的多线程~问题已解决!
互斥锁的功能打个比方来说:好比一节火车上只有一个厕所,当同时有几个乘客要上厕所要怎么解决?打群架?胜者入厕?NO!!应该是这样的,按序进去,先进去的人转动门把手显示“有人”,方便完了出来在转回“无人”,这样门外的人只要看门牌就知道应该是等待还是进去,这样就实现文明入厕自动排序~
多线程的脚本也是一样的道理,当多个线程同时要读取一个进程的内存数据或者同时调用鼠标移动,如果没有协调好就会起冲突,脚本就不能正常运行,所以没有互斥锁的多线程就不是真正的多线程!按键就有好几个具有互斥锁功能的插件,用起来很方便,希望版主能增加这样的功能~!看好TC,作者加油!!感谢论坛各位大神的指点问题已经解决~原来TC里的临界区就是互斥锁的功能!1
作者:
九先生
时间:
2012-2-14 08:36
我来转发一下以前按键论坛一位朋友发的一个互斥锁插件的文章吧,只可惜那插件好像不支持COM接口调用,我在TC试过。。
按键既然支持多线程,为什么就不给一套同步机制呢!反正我没发现,这里写了一个简单的互斥锁插件,应急用用吧.
jcqm.rar (6.88 KB, 下载次数: 249)
2010-5-12 13:53 上传下载次数: 249
由于随手在我学习用的插件工程里加的代码,所以里面还有一些其他东西,见谅!测试代码如下:
DimEnv mux
mux = Plugin.jcqm.jMutexInit
BeginThread te2
Plugin.jcqm.jMutexLock mux
For 10
TracePrint "主线程"
Delay 1000
Next
Plugin.jcqm.jMutexUnlock mux
Delay 99999
EndScript
//////////////////////////////////
Function te2
Plugin.jcqm.jMutexLock mux
For 10
TracePrint "子线程"
Delay 1000
Next
Plugin.jcqm.jMutexUnlock mux
Delay 99999
End Function
Sub OnScriptExit()
Plugin.jcqm.jMutexDestroy mux
End Sub
作者:
TC
时间:
2012-2-14 09:01
:) 朋友,有互斥锁哦,TC
作者:
九先生
时间:
2012-2-14 09:08
回复
3楼
match
的帖子
版主帮忙给个链接啊 教程里没看到~
作者:
红雨
时间:
2012-2-14 09:32
互斥锁这么高科技,在哪里怎么用呢TC
作者:
九先生
时间:
2012-2-14 10:59
:) 朋友,有互斥锁哦,TC
match 发表于 2012-2-14 9:01:29
急切等待回复!!!TC脚本就卡在这了
作者:
三猫大叔
时间:
2012-2-14 11:12
TC是有互斥锁的。就是临界区。
作者:
九先生
时间:
2012-2-14 11:30
回复
7楼
三猫大叔
的帖子
看看了下帮助文档没找到临界区的调用说明啊~麻烦版主指点下!!
作者:
lyf1314
时间:
2012-2-14 12:11
内置api,不需要调用- -
作者:
小风子
时间:
2012-2-14 12:27
后台鼠标还存在互斥么?
作者:
qq1188
时间:
2012-2-14 15:49
高手呀 我还都没高明白呢 都看的乱了套了
作者:
woodfish
时间:
2012-2-14 16:57
这个可以有
作者:
超自然
时间:
2012-2-14 17:50
叫临界,在线程区找
作者:
huanjian
时间:
2012-2-14 18:02
新手帮你顶一下
作者:
清风流水2060
时间:
2012-2-19 01:12
学习了
作者:
popo014
时间:
2012-3-16 16:23
这个真的不是很清楚 我拿点积分吧
作者:
dzh
时间:
2012-3-21 09:49
谢谢学习
作者:
edolie
时间:
2013-2-1 15:09
强人贴,原来临界区是这么用的...
作者:
qsmoon
时间:
2013-7-16 18:20
路过
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1