开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

12
返回列表 发新帖
楼主: KiaPol
收起左侧

[完成] 多线程如何做到一条执行,其他线程等待?

 关闭 [复制链接]
结帖率:96% (142/148)
 楼主| 发表于 2023-7-12 18:45:13 | 显示全部楼层   广东省茂名市
Suky 发表于 2023-7-12 18:26
你说许可证不行????你是不是没用对?

不知道啊。我总共创建6条线程, 6条线程里,又创建了2条 A和B线程, A线程是加了许可证的。
如果只有A线程,6个线程是不会冲突的。
但是B没加许可证,A和B会冲突。因为都是同时触发的。 A加了许可证,A结束了 执行了B。
但是别的窗口 也在执行A,导致B跟别的窗口的A线程冲突
不知道咋回事
回复

使用道具 举报

结帖率:96% (142/148)

签到天数: 6 天

 楼主| 发表于 2023-7-12 18:45:55 | 显示全部楼层   广东省茂名市
KiaPol 发表于 2023-7-12 18:45
不知道啊。我总共创建6条线程, 6条线程里,又创建了2条 A和B线程, A线程是加了许可证的。
如果只有A线 ...

现在就是6个线程里的A不冲突,因为A有许可证,但是B没有,B很容易跟其他线程里的A冲突
回复

使用道具 举报

结帖率:94% (16/17)

签到天数: 6 天

发表于 2023-7-12 18:48:24 | 显示全部楼层   河南省郑州市
KiaPol 发表于 2023-7-12 18:14
加了不行 ,不知道为啥 草 如果是A线程分出来的A1 A2线程许可证有用。
要是B线程的不行 ,不能做到让A C ...

搞个全局变量  线程内判断变量    真就继续跑 假就等待不行么
回复

使用道具 举报

结帖率:100% (18/18)

签到天数: 26 天

发表于 2023-7-12 18:59:53 | 显示全部楼层   福建省泉州市
KiaPol 发表于 2023-7-12 18:45
不知道啊。我总共创建6条线程, 6条线程里,又创建了2条 A和B线程, A线程是加了许可证的。
如果只有A线 ...

既然B直接在A结束后就运行  那就应在A的代码末尾启动线程   而不是在和A平级的线程上创建
同时   如果每个线程的B线程有共用组件、变量或者文件等等,都是需要使用许可证的   互斥体是必要的
如果B与其他线程的A有共用组件、变量等   那其实他们之间也相当于本线程下的A线程与其他线程下的A线程的关系    互斥关系依然是必须的
回复

使用道具 举报

结帖率:96% (142/148)

签到天数: 6 天

 楼主| 发表于 2023-7-12 19:23:50 | 显示全部楼层   广东省茂名市
花开ヽ若相依 发表于 2023-7-12 18:48
搞个全局变量  线程内判断变量    真就继续跑 假就等待不行么

因为写的是脚本多线程,前台的 是主空虚 前台的多开的。
A执行完肯定要接B,但是其他窗口也有可能触发A,所以想达到的目的的,如果别的窗口执行了A,那任何窗口的B 都要暂停
回复

使用道具 举报

结帖率:96% (142/148)

签到天数: 6 天

 楼主| 发表于 2023-7-12 19:27:30 | 显示全部楼层   广东省茂名市
Suky 发表于 2023-7-12 18:59
既然B直接在A结束后就运行  那就应在A的代码末尾启动线程   而不是在和A平级的线程上创建
同时   如果每 ...

能加下你,请叫下吗。因为A执行了事件后,即使不多线程,也得执行B,但是就是想做到,无论任何线程在执行B时,都要等待,先去执行A。所以把B置后再A后面,也不行因为他跟其他线程的A冲突。现在是这这个许可证只能作用到,一条线程里的A和B的优先级,缺没法做到别的线程里A优先去其他线程里的B。不知道怎么解决 大哥。我学的也不久 很多东西也是迷迷瞪瞪的。
回复

使用道具 举报

结帖率:96% (142/148)

签到天数: 6 天

 楼主| 发表于 2023-7-12 19:38:19 | 显示全部楼层   广东省茂名市
Suky 发表于 2023-7-12 19:34
类模块的互斥体不能自动延续到下一级?
那就别用模块啊
自己写多线程    比用模块好处理得多

我是用的 自己定义的多线程信息来的。没有用模块的。
我现在不知道这许可证咋加了。因为就A B两条线程,A加了许可证 不能作用其他线程的A很头疼。
回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 24 天

发表于 2023-7-12 19:38:31 | 显示全部楼层   河北省邢台市
我建议你去定制区吧,
你这描述的不清楚,代码逻辑别人也不懂
当然也可以找我,联系QQ:4080257
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 24 天

发表于 2023-7-14 03:39:42 | 显示全部楼层   广东省珠海市
这个感觉挺简单的呀!
如果非要用许可证的话,那么创建2个许可证
第1和2层只用第1个线程许可证进入和退出
第3层,先用进入第1个线程许可证,再进入第2个线程许可证,最后先退出第2个线程许可证,再退出第1个线程许可证
OK,解决!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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