精易论坛

标题: 多线程崩溃问题 [打印本页]

作者: 4133789    时间: 2013-11-28 11:24
标题: 多线程崩溃问题
如题,使用的多线程,线程少的时候,一切正常,但是运行的线程数量一多.就会提示已经停止工作.程序自动挂掉.
十分无奈呐,表示我也使用了许可证,但是似乎完全没有效果.

下面的是我的用法,我是在启动窗口时,创建了许可证,然后在启动线程的前边与后边分别进入与退出许可证.
不知道这样写对不对.求前辈们指点一下.

[e]
.版本 2.子程序 __启动窗口_创建完毕程序集_线程许可证 = 线程_创建许可证 ().版本 2.支持库 spec.计次循环首 (url总数, 计次)    线程_进入许可区 (程序集_线程许可证)    线程_启动 (&_核心_多线程版, 计次)    线程_退出许可区 (程序集_线程许可证)    ' 信息框 (“退出许可”, 0, )    延时 (等待时间).计次循环尾 ()
[/e]


作者: Antool    时间: 2013-11-28 11:24
4133789 发表于 2013-11-28 14:05
前辈,我是不是可以理解为,用在 被调用的函数的 开始和结束 分别加入 进入 和 退出?
求指点.

在多个线程同时操作一个事件的时候容易造成冲突,这时候才需要用到许可证。在许可区内只允许一个线程操作,其他线程需要等待其退出许可区才能再进入。

如果你在线程内开头和结尾加许可证,那还不是单线程么?先理解一下吧
作者: 4133789    时间: 2013-11-28 11:26
上面的代码可能不太清晰,我再帖一次.
[e]
.版本 2.子程序
__启动窗口_创建完毕
程序集_线程许可证 = 线程_创建许可证 ()
.版本 2.支持库 spec
.计次循环首 (url总数, 计次)   
线程_进入许可区
(程序集_线程许可证)   
线程_启动 (&_核心_多线程版, 计次)   
线程_退出许可区 (程序集_线程许可证)   
延时 (等待时间)
.计次循环尾 ()

本文章来自:精易论坛(http://125.confly.eu.org/thread-13685799-1-1.html)请保留此链接, 感谢! [/e]
作者: Antool    时间: 2013-11-28 11:31
许可证用在线程里面,貌似你用在线程外面的
作者: Violation    时间: 2013-11-28 12:52
如板凳所说 用在线程内
作者: 4133789    时间: 2013-11-28 14:05
Antool 发表于 2013-11-28 11:31
许可证用在线程里面,貌似你用在线程外面的

前辈,我是不是可以理解为,用在 被调用的函数的 开始和结束 分别加入 进入 和 退出?
求指点.
作者: 4133789    时间: 2013-11-28 14:05
精易违背 发表于 2013-11-28 12:52
如板凳所说 用在线程内

前辈,我是不是可以理解为,用在 被调用的函数的 开始和结束 分别加入 进入 和 退出?
求指点.




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4