多线程编程模型:生产者-消费者 模型
这是多线程编程中最经典、最常用的模型之一,
核心价值是解耦生产(数据生成 / 任务创建)和消费(数据处理 / 任务执行)的逻辑,
缓冲两者的速度差异,提升系统吞吐量和稳定性。
使用方法:---------
1:定义全局变量
Dim shared 工作 As 生产消费模型
2:设置工作处理函数
工作.设置任务函数(@任务执行)
3:任务创建
工作.任务创建(100)
4:任务函数
Sub 任务执行(数据 As Any Ptr) '多线程执行中
Print "任务执行",数据
Sleep 100
End Sub
实际使用中,数据是根据自己需要定义一个类
Type 自己的数据类
aa As Long
bb As Long
End Type
Dim 工作数据 As 自己的数据类 Ptr = new 自己的数据类 '创建的数据变量
工作数据->aa=100
工作.任务创建(工作数据)
Sub 任务执行(数据 As 自己的数据类 Ptr ) '多线程执行中
Print "任务执行",数据.aa ,数据.bb
Delete 数据 '用后需要销毁
End Sub
'注意:假如 工作 变量被销毁,那么多线程完成工作后立即就退出,后续没完成的工作将会丢弃
'' 假如任务创建速度快于任务执行,数据缓存区就满,超过100个后就强制任务创建等待,如果是界面线程就表现软件无响应。
评论一下?