鱼C论坛

 找回密码
 立即注册
查看: 8193|回复: 1

[技术交流] QWorker ,一套开源的多线程并行编程框架,超级好用,谁用谁知道!

[复制链接]
发表于 2015-1-31 16:01:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 comeheres 于 2015-1-31 16:04 编辑

因为好用,所以推荐!

它可以做什么?
1、可以完成需要定时执行的作业,相当于一个多线程的定时器,如果运行在主线程,则它可以完全替代TTimer。
2、可以完成延迟执行操作,不再依靠Sleep,你可以将计划更明确的分步骤延迟完成,写的代码更好看,更精炼。
3、可以按信号触发某些操作,程序就不需要去轮询某些状态。而且通过信号触发,响应者可以有多个,而不是有一个,这样就可以完成事件的多播支持。
4、可以按计划触发作业,计划的作业可以是一次性的,也可以按周期重复的。
5、可以在主线程和后台作业之间方便的交互,后台线程的作业执行完成后,可以向主线程中简单的投寄通知和各类参数数据。
6、方便的多步作业支持,分步完成,该多线程就多线程,该主线程就主线程,作业过程中,可以进一步触发更多的作业过程,子子孙孙无穷尽矣~~~。
7、它还是一个自管理的线程池,动态根据需要增减线程的数量。作业在线程中被有序的调度执行。
8、更多的用途还需要你自己去发现,我只是抛块砖,具体引来的是玉还是碎石,就看你自己的水平了。


以下摘自官方博客内容:

      QWorker 是 QDAC 项目带给大家的一套多线程并行编程框架。它基于作业的视角来规划作业多线程编程,简化多线程编程的步骤和方法和交互手法。
      首先,我们要明白我们为什么需要多线程并行编程?
我们之所以使用多线程编程,一般目的不外乎下面两个:
      1、避免程序界面假死带来的恶劣用户体验。
      2、充分利用现代计算机的处理资源,来加快业务的处理速度。

      当然,您可能有更好更多的理由来做多线程编程,但上面的这两个理由对于一般的人来说足够了。
      接下来,一个新的问题来了,我们为什么要什么 QWorker 而不是系统自带的多线程框架来编程?
      这个理由实际上很简单,使用 QWorker 会进一步简化你的编程逻辑的设计,使你更专注于业务流程的规划和实现,而不去管理线程池及处理资源的调度问题。
      那么,什么是作业?
      在 QWorker 中,所谓的作业就是一个逻辑上的业务处理单元。我们要实现一个复杂的任务时,可以将其分解成一到多个小的任务,每个任务由一个函数来管理,这个函数我们就可以将其理解为一项作业,而这些函数的组合就构成了一个作业分组。作业我们可以让其运行在主线程或者后台线程,注意一点,主线程不适合进行长时间作业,那样会造成主线程阻塞,造成假死的现象,影响用户体验。
      现在看看,QWorker 为我们提供了什么呢?

1、一个跨平台的异步执行体系
      一旦我们通过 Workers.Post 直接来投寄一个异步作业,这个作业将在后台被计划执行。
2、一个跨平台的计划任务框架
      通过 At 函数,可以满足作业定时执行的需求。
3、一个高精度的后台线程定时器
      通过 Post 时设置重复间隔,可以简单的生成一个定时重复作业,实现后台线程定时器的效果。
4、一个松散耦合的业务框架
      通过信号建立不同模块的不同单元的联系,可以很好的实现模块间的松散耦合和自动触发。
5、一个流程管理框架
      通过作业组(TQJobGroup)可以将多个作业管理在一起,然后串行或并行执行,并在全部作业执行完成时,得到相应的事件通知,当然也可以等待全部作业执行完成。
6、一个并行操作引擎
      通过 Workers.For 可以并行循环执行同一个过程,而直接Post到后台的作业,也会被计划成并行执行。
7、一个线程池
      QWorker 提供了一个自动管理线程生命周期的线程池。当然如上所述,它的功能远不止于此。



具体介绍、使用技巧、实例、教程可见QDAC官方网站的文章:http://blog.qdac.cc/?p=191

最新版本下载地址:http://blog.qdac.cc/?page_id=139

【教程】基于 QWorker 的多线程编程专题 PDF下载 http://pan.baidu.com/s/1sjQCgy

关于QDAC组件项目,可详见官方  http://blog.qdac.cc/?page_id=2















想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-1 16:27:01 | 显示全部楼层
支持了 谢谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 22:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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