精易论坛
标题:
两个线程中造成冲突 进来看问题
[打印本页]
作者:
笨笨的小纬
时间:
2025-5-10 22:45
标题:
两个线程中造成冲突 进来看问题
我用了两个线程 一个A 一个B 启动顺序是 启动A线程后在A线程内部启动B线程 运行过程中由B线程 挂起A线程
这时候相当于A线程被挂起 B线程正常运行 但是极少数情况下B线程也就停了 这是为什么
作者:
你的猫
时间:
2025-5-10 22:45
窗口程序集名
保 留
保 留
备 注
窗口程序集_启动窗口
变量名
类 型
数组
备 注
线程A句柄
整数型
线程B句柄
整数型
线程A暂停标志
逻辑型
初始值为假
子程序名
返回值类型
公开
备 注
_按钮_启动_被单击
线程A句柄 =
启动线程
(
&线程A子程序, ,
)
子程序名
返回值类型
公开
备 注
线程A子程序
线程B句柄 =
启动线程
(
&线程B子程序, ,
)
判断循环首
(
真
)
' 线程A的主循环
如果真
(
线程A暂停标志
)
延时
(
100
)
' 暂停时让出CPU,避免忙等待
否则
' 线程A正常工作的代码
输出调试文本
(
“线程A正在运行...”
)
延时
(
500
)
判断循环尾
(
)
子程序名
返回值类型
公开
备 注
线程B子程序
延时
(
2000
)
' 模拟运行一段时间后暂停线程A
线程A暂停标志 = 真
输出调试文本
(
“线程B已暂停线程A”
)
延时
(
3000
)
' 模拟运行一段时间后恢复线程A
线程A暂停标志 = 假
输出调试文本
(
“线程B已恢复线程A”
)
.版本 2
.程序集 窗口程序集_启动窗口
.程序集变量 线程A句柄, 整数型
.程序集变量 线程B句柄, 整数型
.程序集变量 线程A暂停标志, 逻辑型, , "初始值为假"
.子程序 _按钮_启动_被单击
线程A句柄 = 启动线程 (&线程A子程序, , )
.子程序 线程A子程序
线程B句柄 = 启动线程 (&线程B子程序, , )
.判断循环首 (真) ' 线程A的主循环
.如果真 (线程A暂停标志)
延时 (100) ' 暂停时让出CPU,避免忙等待
否则
' 线程A正常工作的代码
输出调试文本 (“线程A正在运行...”)
延时 (500)
.如果真结束
.判断循环尾 ()
.子程序 线程B子程序
延时 (2000) ' 模拟运行一段时间后暂停线程A
线程A暂停标志 = 真
输出调试文本 (“线程B已暂停线程A”)
延时 (3000) ' 模拟运行一段时间后恢复线程A
线程A暂停标志 = 假
输出调试文本 (“线程B已恢复线程A”)
作者:
baitso
时间:
2025-5-10 22:58
检查两个线程是否有共同的许可证或者互斥信号,如果有,先排除了死锁的情况。
欢迎光临 精易论坛 (https://125.confly.eu.org/)
Powered by Discuz! X3.4