多控制器之间任务处理的方法和装置制造方法及图纸

技术编号:10658492 阅读:111 留言:0更新日期:2014-11-19 18:36
本发明专利技术提供了一种多控制器之间任务处理的方法和装置,其中方法包括:分发线程接收其他控制器发送的任务命令消息,控制器包括分发线程和线程池,线程池包括至少一个工作线程,分发线程和线程池间包括任务命令消息队列;工作线程的起始状态利用条件变量设置成睡眠状态;分发线程将接收到的任务命令消息添加到任务命令消息队列,并利用条件变量唤醒工作线程;工作线程从任务命令消息队列取出任务命令进行任务处理,当任务命令消息队列为空时,工作线程切换到睡眠状态。本发明专利技术能够解决快速任务命令通信和慢速任务处理的矛盾,提高设备的性能。

【技术实现步骤摘要】
【专利摘要】本专利技术提供了一种多控制器之间任务处理的方法和装置,其中方法包括:分发线程接收其他控制器发送的任务命令消息,控制器包括分发线程和线程池,线程池包括至少一个工作线程,分发线程和线程池间包括任务命令消息队列;工作线程的起始状态利用条件变量设置成睡眠状态;分发线程将接收到的任务命令消息添加到任务命令消息队列,并利用条件变量唤醒工作线程;工作线程从任务命令消息队列取出任务命令进行任务处理,当任务命令消息队列为空时,工作线程切换到睡眠状态。本专利技术能够解决快速任务命令通信和慢速任务处理的矛盾,提高设备的性能。【专利说明】多控制器之间任务处理的方法和装置
本专利技术涉及计算机
,尤其涉及一种多控制器之间任务处理的方法和装 置。
技术介绍
设备中控制器控制设备部件正常运行,例如,设备具有单控制器或多控制器来控 制该设备的运行,其中单控制器一般称为集中式设备或集中式系统,多控制器一般称为分 布式设备或分布式系统。随着计算机行业对控制系统可靠性要求的提高,分布式多控制系 统把设备的控制权下发到多个控制器,这种控制方式搭建灵活,而且可以提升设备的可靠 性,因此,分布式多控制器系统逐渐树立了核心设备的竞争地位。 多控制器之间协作任务处理在分布式多控制系统中是不可缺少的,但是任务的处 理速度与控制器间任务命令的通信相比是很耗时的,即从一个控制器下发一条任务命令到 另一个控制器,这个通信过程很快,而大多情况下接到任务命令后控制器按照任务命令把 任务处理完成是相对比较慢,因此,快速的任务命令通信与慢速的任务处理之间的矛盾会 造成控制器间协作缓慢,进而影响设备的性能。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种多控制器之间任务处理的方法和装 置,能够解决多控制器之间快速的任务命令通信和慢速的任务处理的矛盾,提高设备的性 能。 为了达到本专利技术目的,本专利技术提供了一种多控制器之间任务处理的方法,包括:控 制器的分发线程接收其他控制器发送来的任务命令消息,其中控制器包括分发线程和线程 池,线程池包括至少一个工作线程,分发线程和线程池之间包括任务命令消息队列;工作线 程的起始状态利用条件变量设置成睡眠状态;分发线程将接收到的任务命令消息添加到任 务命令消息队列中,并利用条件变量唤醒工作线程;工作线程从任务命令消息队列取出任 务命令进行任务处理,当任务命令消息队列为空时,工作线程切换到睡眠状态。 进一步地,该方法还包括:控制器预先设置分发线程和线程池;根据分发线程接 收任务命令的频率和线程池中工作线程处理任务的时长,设置线程池中工作线程的数量。 进一步地,该方法还包括:控制器预先在分发线程与线程池之间设置可共享的任 务命令消息队列,所述任务命令消息队列采用链表方式,任务命令消息先进先出;分发线程 将接收到的任务命令消息添加到任务命令消息队列中,包括:分发线程将接收到的任务命 令消息依次添加到任务命令消息队列的尾部;工作线程从任务命令消息队列取出任务命令 进行任务处理,包括:工作线程依次从任务命令消息队列的头部取出任务命令进行任务处 理。 进一步地,工作线程的起始状态利用条件变量设置成睡眠状态,包括:工作线程的 起始状态调用pthread_cond_wait消息设置成睡眠状态。 进一步地,分发线程利用条件变量唤醒工作线程,包括:分发线程采用广播方式, 调用pthread_cond_signal消息唤醒线程池中的所有工作线程。 本专利技术提供了一种多控制器之间任务处理的装置,包括:分发线程,用于接收其他 控制器发送来的任务命令消息;线程池,包括至少一个工作线程,作线程用于任务处理;任 务命令消息队列,在分发线程和线程池之间,用于任务命令消息的传递;工作线程的起始状 态利用条件变量设置成睡眠状态;分发线程将接收到的任务命令消息添加到任务命令消息 队列中,并利用条件变量唤醒工作线程;工作线程从任务命令消息队列取出任务命令进行 任务处理,当任务命令消息队列为空时,工作线程切换到睡眠状态。 进一步地,该装置还包括:第一设置模块,用于预先设置分发线程和线程池;第一 设置模块还用于根据分发线程接收任务命令的频率和工作线程处理任务的时长,设置线程 池中工作线程的数量。 进一步地,该装置还包括:第二设置模块,用于预先在分发线程与线程池之间设置 任务命令消息队列,任务命令消息队列采用链表方式,任务命令消息先进先出;分发线程将 接收到的任务命令消息依次添加到任务命令消息队列的尾部,工作线程依次从任务命令消 息队列的头部取出任务命令进行任务处理。 进一步地,工作线程的起始状态利用条件变量设置成睡眠状态,包括:工作线程的 起始状态调用pthread_cond_wait消息设置成睡眠状态。 进一步地,分发线程利用条件变量唤醒工作线程,包括:分发线程采用广播方式, 调用pthread_cond_signal消息唤醒线程池中的所有工作线程。 与现有技术相比,本专利技术包括:控制器的分发线程接收其他控制器发送来的任务 命令消息,控制器包括分发线程和线程池,线程池包括至少一个工作线程,分发线程和线程 池之间包括任务命令消息队列;工作线程的起始状态利用条件变量设置成睡眠状态;分发 线程将接收到的任务命令消息添加到任务命令消息队列中,并利用条件变量唤醒工作线 程;工作线程从任务命令消息队列取出任务命令进行任务处理,当任务命令消息队列为空 时,工作线程切换到睡眠状态。本专利技术通过设置分发线程和线程池,将接收任务命令和处理 任务分开到不同的线程,从而解决多控制器之间快速的任务命令通信和慢速的任务处理的 矛盾。此外,在分发线程和线程池之间建立可共享的任务命令消息队列,若分发线程接收到 来自其他控制器的任务命令,会将任务命令加入到任务命令消息队列中,线程池的工作线 程从任务命令消息队列中取出任务命令进行任务处理,因此,分发线程能够及时地对接收 到的任务命令进行处理,而不会因为工作线程任务处理时间较长使得控制器之间的任务命 令通信成为瓶颈,从而提高设备的性能。 【专利附图】【附图说明】 图1是本专利技术多控制器之间任务处理的方法的流程示意图。 图2是本专利技术多控制器之间任务处理的装置的结构示意图。 【具体实施方式】 以下将结合附图所示的【具体实施方式】对本专利技术进行详细描述。 图1是多控制器之间任务处理的方法的流程示意图,如图1所示,该方法包括: 步骤11,设置分发线程和线程池,该线程池包括至少一条工作线程; 在本步骤中,相对于接收任务命令,处理任务耗时较长,所以控制器将接收任务命 令和处理任务分开到不同的线程,具体的,控制器设置分发线程和线程池,其中分发线程接 收来自其他控制器的任务命令,并将任务命令进行分发;线程池中的工作线程处理任务。 控制器可以根据分发线程接收任务命令的频率和工作线程处理任务的时长,来设 置线程池中工作线程的数量,例如,分发线程每秒接收1个命令任务,工作线程处理1个任 务需要10秒,那么线程池中可以设置10?15个工作线程。 步骤12,在分发线程与线程池之间设置任务命令消息队列。 在本步骤中,控制器预先在分发线程与线程池之间建本文档来自技高网
...

【技术保护点】
一种多控制器之间任务处理的方法,其特征在于,包括:控制器的分发线程接收其他控制器发送来的任务命令消息,所述控制器包括分发线程和线程池,所述线程池包括至少一个工作线程,所述工作线程的起始状态利用条件变量设置成睡眠状态;所述分发线程和线程池之间包括任务命令消息队列;所述分发线程将接收到的任务命令消息添加到任务命令消息队列中,并利用条件变量唤醒工作线程;所述工作线程从任务命令消息队列取出任务命令进行任务处理,当任务命令消息队列为空时,工作线程切换到睡眠状态。

【技术特征摘要】

【专利技术属性】
技术研发人员:李美欣
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1