开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

12
返回列表 发新帖
楼主: 764693871
打印 上一主题 下一主题
收起左侧

[已解决] 帮忙看下这个队列有没有问题

 关闭 [复制链接]
结帖率:100% (11/11)
11
 楼主| 发表于 前天 23:25 | 只看该作者   江苏省泰州市
队列还看不懂,线程池这个感觉简单点
回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 6 天

12
 楼主| 发表于 昨天 00:11 | 只看该作者   江苏省泰州市
Suky 发表于 2025-7-22 22:29
你要的是队列,但是你写的是多线程线程池
这跟队列是两码事
方向错了

懂了,队列就是压数据,然后只启动一个子程序死循环判断是否有队列,有就弹数据,是这个意思吧
回复

使用道具 举报

结帖率:96% (47/49)

签到天数: 5 天

13
发表于 昨天 03:03 | 只看该作者   河北省秦皇岛市
你在线程池回调函数中使用了_读内存文本(局_参数),但没有对内存释放进行保护,当多个线程同时操作同一块内存区域时,可能会出现内存访问冲突,在按钮点击事件中,你使用了循环变量i,但它没有被正确初始化和递增,每次点击按钮时,i的值都是未定义的,导致消息内容可能重复,使用_写内存文本分配的内存没有对应的释放机制,长时间运行会导致内存泄漏。

修改后的代码可以尝试一下:
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
线程池鱼刺类_线程池Ex  
互斥锁整数型  
消息队列文本型待发送的消息队列 
当前索引整数型  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
线程池.创建 (1, 1)  ' 单线程模式,确保顺序执行
互斥锁 = 互斥锁_创建 ()
当前索引 = 0
子程序名返回值类型公开备 注
_按钮1_被单击  
变量名类 型静态数组备 注
局_消息内容文本型 
i整数型 
' 正确初始化循环变量
i = 当前索引 + 1
当前索引 = i

局_消息内容 = “呵呵哒”到文本 (i)

' 使用互斥锁保护队列操作
互斥锁_锁定 (互斥锁)
加入成员 (消息队列, 局_消息内容)
互斥锁_解锁 (互斥锁)

' 投递消息处理任务
线程池.投递任务 (&处理消息队列, 0)
子程序名返回值类型公开备 注
处理消息队列  
参数名类 型参考可空数组备 注
局_参数整数型
变量名类 型静态数组备 注
待发送消息文本型 
互斥锁_锁定 (互斥锁)

' 检查队列是否有消息
如果真 (取数组成员数 (消息队列) > 0)
待发送消息 = 消息队列 [1]
删除成员 (消息队列, 1)
互斥锁_解锁 (互斥锁)

' 执行实际发送消息的操作
发送消息 (待发送消息)
互斥锁_解锁 (互斥锁)

子程序名返回值类型公开备 注
发送消息  
参数名类 型参考可空数组备 注
消息内容文本型
变量名类 型静态数组备 注
文本指针整数型 
' 分配内存存储消息
文本指针 = _写内存文本 (消息内容)

' 这里添加实际发送消息的代码
调试输出 ("发送消息: " & _读内存文本 (文本指针))

' 释放内存
释放内存 (文本指针)


i支持库列表   支持库注释   
spec特殊功能支持库


[color=rgba(0, 0, 0, 0.85)]这样修改后,代码可以安全地实现 "一次给一个人发一条消息" 的需求,避免了内存冲突和泄漏问题。如果实际发送消息涉及网络操作,建议在发送消息[color=rgba(0, 0, 0, 0.85)]子程序中添加错误处理和重试机制。
回复

使用道具 举报

签到天数: 21 天

14
发表于 昨天 08:54 | 只看该作者   山东省滨州市
队列是队列,多线程是多线程。
队列是先进先出的数据结构,可以保证处理顺序。
多线程是随机的,你还要处理各种锁相关的问题,线程是非常珍贵的资源,也不应该用在这方面

补充内容 (2025-7-23 08:54):
另外你写到内存的指针需要手动释放
回复

使用道具 举报

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

本版积分规则 致发广告者

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

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

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