多线程创建系统及方法、多线程处理系统及方法.pdf

上传人:g**** 文档编号:1306201 上传时间:2018-04-14 格式:PDF 页数:11 大小:759.76KB
返回 下载 相关 举报
摘要
申请专利号:

CN201611021345.0

申请日:

2016.11.21

公开号:

CN106708614A

公开日:

2017.05.24

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 9/48申请日:20161121|||公开

IPC分类号:

G06F9/48; G06F9/50

主分类号:

G06F9/48

申请人:

桂林远望智能通信科技有限公司

发明人:

蔡晓东; 刘剑

地址:

541004 广西壮族自治区桂林市朝阳路信息产业园漓江科技园科研楼二楼

优先权:

专利代理机构:

北京轻创知识产权代理有限公司 11212

代理人:

杨立;周玉婷

PDF下载: PDF下载
内容摘要

本发明涉及多线程创建系统及方法、多线程处理系统及方法,多线程创建系统包括:接收外部的窗体对象指令,并传输至窗口对象模块;还将窗体对象传输至外部进行显示的接口模块;生成窗体对象,同时分别生成创建第一线程消息队列指令、创建第二线程消息队列指令、创建主线程指令和创建子线程指令;还向接口模块输出窗体对象的窗口对象模块;创建第一线程消息队列和第二线程消息队列,并向窗口对象模块返回第一创建成功消息的线程消息队列模块;分别创建主线程和子线程,并向窗口对象模块返回第二创建成功消息的线程处理模块。相对现有技术,本发明能减少临界区,改善程序的流程性,提高用户体验,线程的处理规范化,也可以保证系统稳定性。

权利要求书

1.一种多线程创建系统,其特征在于:包括接口模块(1)、窗口对象模块(2)、线程消息
队列模块(3)和线程处理模块(4);
所述接口模块(1),用于接收外部的窗体对象指令,并传输至窗口对象模块(2);还用于
将窗体对象传输至外部进行显示;
所述窗口对象模块(2),用于根据窗体对象指令生成窗体对象,同时分别生成创建第一
线程消息队列指令、创建第二线程消息队列指令、创建主线程指令和创建子线程指令;还用
于根据第一创建成功消息和第二创建成功消息向所述接口模块(1)输出窗体对象;
所述线程消息队列模块(3),用于根据创建第一线程消息队列指令和创建第二线程消
息队列指令分别创建第一线程消息队列和第二线程消息队列,并向窗口对象模块(2)返回
第一创建成功消息;
所述线程处理模块(4),用于根据创建主线程指令和创建子线程指令分别创建主线程
和子线程,并向窗口对象模块(2)返回第二创建成功消息。
2.根据权利要求1所述的多线程创建系统,其特征在于:所述线程处理模块(4)创建主
线程和子线程过程中分别向主线程和子线程中植入智能指针。
3.一种多线程处理系统,其特征在于:包括权利要求1或2所述的多线程创建系统及其
创建的第一线程消息队列、第二线程消息队列、主线程和子线程;
所述接口模块(1),用于接收外部的操作指令,传输至窗口对象模块(2);还用于对第一
处理结果传输至外部进行显示;还用于对第二处理结果传输至外部进行显示;
所述窗口对象模块(2),用于对操作指令所要求执行的任务进行判断,当判断所要执行
的任务需要在线程处理时,提取对应主线程传输至线程消息队列模块(3),并生成第一处理
结果返回接口模块(1);
所述线程消息队列模块(3),用于将主线程放入第一线程消息队列进行保存和排序;
所述线程处理模块(4),用于读取第一线程消息队列内的主线程,通过主线程进行处
理,调取资源执行对应任务,完成任务时向接口模块(1)返回第二处理结果;完成任务后将
子线程放入第二线程消息队列中,通过子线程清除主线程调取的资源,清除窗口对象。
4.根据权利要求3所述的多线程处理系统,其特征在于:所述窗口对象模块(2)对操作
指令所要求执行的任务进行判断,当所要执行的任务延时或者执行任务所用的资源只是在
线程中,则所要执行的任务需要在线程处理。
5.根据权利要求3所述的多线程处理系统,其特征在于:
所述接口模块(1),用于根据第一处理结果生成清理窗口指令,传输至窗口对象模块
(2);还用对清理结束信号进行显示;
所述窗口对象模块(2),用于根据清理窗口指令调取子线程传输至线程消息队列模块
(3);还用于根据第三处理结果通过主线程隐藏窗体对象;还用于根据第四处理结果清理窗
体对象,向接口模块(1)返回清理结束信号;
所述线程消息队列模块(3),用于将子线程放入第二线程消息队列进行保存和排序,生
成第三处理结果返回窗口对象模块(2);
所述线程处理模块(4),用于读取第二线程消息队列中的子线程,清除主线程调取的资
源,同时关闭子线程;完成任务时向窗口对象模块(2)返回第四处理结果。
6.根据权利要求5所述的多线程处理系统,其特征在于:所述线程处理模块(4)还用于
调取主线程,主线程根据第四处理结果清理清理窗体对象。
7.一种多线程创建方法,其特征在于,包括以下步骤:
步骤A1.接收外部的窗体对象指令,根据窗体对象指令生成窗体对象,同时分别生成创
建第一线程消息队列指令、创建第二线程消息队列指令、创建主线程指令和创建子线程指
令;
步骤A2.根据创建第一线程消息队列指令和创建第二线程消息队列指令分别创建第一
线程消息队列和第二线程消息队列,并返回第一创建成功消息;根据创建主线程指令和创
建子线程指令分别创建主线程和子线程,并返回第二创建成功消息;
步骤A3.根据第一创建成功消息和第二创建成功消息输出窗体对象,将窗体对象传输
至外部进行显示。
8.根据权利要求7所述的多线程创建方法,其特征在于:在步骤A2中,创建主线程和子
线程过程中分别向主线程和子线程中植入智能指针。
9.一种多线程处理方法,其特征在于,包括以下步骤:
步骤B1.接收外部的操作指令,对操作指令所要求执行的任务进行判断,当判断所要执
行的任务需要在线程处理时,提取对应主线程传输至第一线程消息队列,并生成第一处理
结果传输至外部进行显示;
步骤B2.将主线程放入第一线程消息队列进行保存和排序;
步骤B3.读取第一线程消息队列内的主线程,通过主线程进行处理,调取资源执行对应
任务,完成任务时返回第二处理结果传输至外部进行显示;完成任务后还清除主线程调取
的资源,清除窗口对象。
10.根据权利要求9所述的多线程创建方法,其特征在于:步骤B1中对操作指令所要求
执行的任务进行判断,当所要执行的任务延时或者执行任务所用的资源只是在线程中,则
所要执行的任务需要在线程处理。

说明书

多线程创建系统及方法、多线程处理系统及方法

技术领域

本发明涉及计算机技术领域,特涉及一种多线程创建系统及方法、多线程处理系
统及方法。

背景技术

现有技术的窗体中,用的是消息队列的方式,而不是用多个线程,这样是为了程序
的扩展性。我们按它的框架来写代码,可以实现方便快捷的开发,但是也使得很多应用程序
编程接口并不是线程安全的,甚至有些函数不支持在非窗体主线程上是用;可是在所有程
序,都有可能需要并行执行。如果不并行,都在窗体主线程中执行,就有可能会等待,而在窗
体主程序中做等待,会使得程序变灰色,然后弹出“程序未响应”的系统提示。只有这个等待
结束后,程序才能恢复。然而,如果用多线程,又会出现很多的临界区(基本上在窗体的应用
程序编程接口都属于临界区了),这样也会使得编程变得很费力。再者,如果线程有多个子
线程,在需要释放窗体的时候,也必须等待子线程结束后,才能释放窗体,这样也使得主线
程出现等待的现象,然后弹出“程序未响应”的系统提示,所以有必要对这些问题进行解决。

发明内容

本发明的目的是提供一种多线程创建系统及方法、多线程处理系统及方法,所要
解决的技术问题是:如何减少临界区,改善程序的流程性,提高用户体验,线程的处理规范
化,也可以保证系统稳定性。

本发明解决上述技术问题的技术方案如下:一种多线程创建系统,包括接口模块、
窗口对象模块、线程消息队列模块和线程处理模块;

所述接口模块,用于接收外部的窗体对象指令,并传输至窗口对象模块;还用于将
窗体对象传输至外部进行显示;

所述窗口对象模块,用于根据窗体对象指令生成窗体对象,同时分别生成创建第
一线程消息队列指令、创建第二线程消息队列指令、创建主线程指令和创建子线程指令;还
用于根据第一创建成功消息和第二创建成功消息向所述接口模块输出窗体对象;

所述线程消息队列模块,用于根据创建第一线程消息队列指令和创建第二线程消
息队列指令分别创建第一线程消息队列和第二线程消息队列,并向窗口对象模块返回第一
创建成功消息;

所述线程处理模块,用于根据创建主线程指令和创建子线程指令分别创建主线程
和子线程,并向窗口对象模块返回第二创建成功消息。

本发明的有益效果是:通过创建第一线程消息队列、第二线程消息队列、主线程和
子线程,能使主线程在第一线程消息队列中保存排序,能使子线程在第二线程消息队列中
保存排序,充分实现主线程和子线程进行并行处理;线程处理模块能对主线程和子线程统
一管理,使得管理简单而统一,提升稳定性。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,所述线程处理模块创建主线程和子线程过程中分别向主线程和子线程中
植入智能指针。

采用上述进一步方案的有益效果是:主线程和子线程中植入智能指针,通过智能
指针能保证主线程和子线程能相对自动处理,使得运行更加流畅和快速。

本发明解决上述技术问题的另一技术方案如下:一种多线程处理系统,包括多线
程创建系统及其创建的第一线程消息队列、第二线程消息队列、主线程和子线程;

所述接口模块,所述接口模块,用于接收外部的操作指令,传输至窗口对象模块;
还用于对第一处理结果传输至外部进行显示;还用于对第二处理结果传输至外部进行显
示;

所述窗口对象模块,用于对操作指令所要求执行的任务进行判断,当判断所要执
行的任务需要在线程处理时,提取对应主线程传输至线程消息队列模块,并生成第一处理
结果返回接口模块;

所述线程消息队列模块,用于将主线程放入第一线程消息队列进行保存和排序;

所述线程处理模块4,用于读取第一线程消息队列内的主线程,通过主线程进行处
理,调取资源执行对应任务,完成任务时向接口模块1返回第二处理结果;完成任务后将子
线程放入第二线程消息队列中,通过子线程清除主线程调取的资源,清除窗口对象。

本发明的有益效果是:能使主线程在第一线程消息队列中保存排序,能使子线程
在第二线程消息队列中保存排序,充分实现主线程和子线程进行并行处理;线程处理模块
能对主线程和子线程统一管理,使得管理简单而统一,提升稳定性,能减少临界区,改善程
序的流程性,提高用户体验,线程的处理规范化,也可以保证系统稳定性。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,所述窗口对象模块对操作指令所要求执行的任务进行判断,当所要执行
的任务延时或者执行任务所用的资源只是在线程中,则所要执行的任务需要在线程处理。

采用上述进一步方案的有益效果是:窗口对象模块对操作指令所要求执行的任务
进行判断,能提升对延时高的任务或者所用的资源只是在线程中的任务进行高效处理,能
对减少临界区,改善程序的流程性,提高用户体验,线程的处理规范化,也可以保证系统稳
定性。

进一步,所述接口模块,用于根据第一处理结果生成清理窗口指令,传输至窗口对
象模块;还用对清理结束信号进行显示;

所述窗口对象模块,用于根据清理窗口指令调取子线程传输至线程消息队列模
块;还用于根据第三处理结果通过主线程隐藏窗体对象;还用于根据第四处理结果清理窗
体对象,向接口模块返回清理结束信号;

所述线程消息队列模块,用于将子线程放入第二线程消息队列进行保存和排序,
生成第三处理结果返回窗口对象模块;

所述线程处理模块,用于读取第二线程消息队列中的子线程,清除主线程调取的
资源,同时关闭子线程;完成任务时向窗口对象模块返回第四处理结果。

采用上述进一步方案的有益效果是:子线程的清理过程与主线程是并行,异步的;
用户清理任务只是将窗体隐藏,然后资源清理用子线程处理,子线程得到充分的利用,而又
不影响主线程工作;使得释放变动非常流畅和快速。

进一步,所述线程处理模块还用于调取主线程,主线程根据第四处理结果清理清
理窗体对象。

采用上述进一步方案的有益效果是:主线程的清理过程能与子线程的清理过程异
步并行处理,使得释放变动非常流畅和快速。

本发明解决上述技术问题的另一技术方案如下:一种多线程创建方法,包括以下
步骤:

步骤A1.接收外部的窗体对象指令,根据窗体对象指令生成窗体对象,同时分别生
成创建第一线程消息队列指令、创建第二线程消息队列指令、创建主线程指令和创建子线
程指令;

步骤A2.根据创建第一线程消息队列指令和创建第二线程消息队列指令分别创建
第一线程消息队列和第二线程消息队列,并返回第一创建成功消息;根据创建主线程指令
和创建子线程指令分别创建主线程和子线程,并返回第二创建成功消息;

步骤A3.根据第一创建成功消息和第二创建成功消息输出窗体对象,将窗体对象
传输至外部进行显示。

本发明的有益效果是:通过创建第一线程消息队列、第二线程消息队列、主线程和
子线程,能使主线程在第一线程消息队列中保存排序,能使子线程在第二线程消息队列中
保存排序,充分实现主线程和子线程进行并行处理;能对主线程和子线程统一管理,使得管
理简单而统一,提升稳定性。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,在步骤A2中,创建主线程和子线程过程中分别向主线程和子线程中植入
智能指针。

采用上述进一步方案的有益效果是:主线程和子线程中植入智能指针,通过智能
指针能保证主线程和子线程能相对自动处理,使得运行更加流畅和快速。

本发明解决上述技术问题的另一技术方案如下:一种多线程处理方法,包括以下
步骤:

步骤B1.接收外部的操作指令,对操作指令所要求执行的任务进行判断,当判断所
要执行的任务需要在线程处理时,提取对应主线程传输至第一线程消息队列,并生成第一
处理结果传输至外部进行显示;

步骤B2.将主线程放入第一线程消息队列进行保存和排序;

步骤B3.读取第一线程消息队列内的主线程,通过主线程进行处理,调取资源执行
对应任务,完成任务时返回第二处理结果传输至外部进行显示;完成任务后还清除主线程
调取的资源,清除窗口对象。

本发明的有益效果是:能使主线程在第一线程消息队列中保存排序,能使子线程
在第二线程消息队列中保存排序,充分实现主线程和子线程进行并行处理;能对主线程和
子线程统一管理,使得管理简单而统一,提升稳定性,能减少临界区,改善程序的流程性,提
高用户体验,线程的处理规范化,也可以保证系统稳定性。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,步骤B1中对操作指令所要求执行的任务进行判断,当所要执行的任务延
时或者执行任务所用的资源只是在线程中,则所要执行的任务需要在线程处理。

采用上述进一步方案的有益效果是:对操作指令所要求执行的任务进行判断,能
提升对延时高的任务或者所用的资源只是在线程中的任务进行高效处理,能对减少临界
区,改善程序的流程性,提高用户体验,线程的处理规范化,也可以保证系统稳定性。

附图说明

图1为本发明一种多线程创建系统的模块框图;

图2为本发明一种多线程创建方法的流程图;

图3为本发明一种多线程处理方法的流程图。

附图中,各标号所代表的部件列表如下:

1、接口模块,2、窗口对象模块,3、线程消息队列模块,4、线程处理模块。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并
非用于限定本发明的范围。

如图1所示,一种多线程创建系统,包括接口模块1、窗口对象模块2、线程消息队列
模块3和线程处理模块4;

所述接口模块1,用于接收外部的窗体对象指令,并传输至窗口对象模块;还用于
将窗体对象传输至外部进行显示;

所述窗口对象模块2,用于根据窗体对象指令生成窗体对象,同时分别生成创建第
一线程消息队列指令、创建第二线程消息队列指令、创建主线程指令和创建子线程指令;还
用于根据第一创建成功消息和第二创建成功消息向所述接口模块1输出窗体对象;

所述线程消息队列模块3,用于根据创建第一线程消息队列指令和创建第二线程
消息队列指令分别创建第一线程消息队列和第二线程消息队列,并向窗口对象模块2返回
第一创建成功消息;

所述线程处理模块4,用于根据创建主线程指令和创建子线程指令分别创建主线
程和子线程,并向窗口对象模块2返回第二创建成功消息。

通过创建第一线程消息队列、第二线程消息队列、主线程和子线程,能使主线程在
第一线程消息队列中保存排序,能使子线程在第二线程消息队列中保存排序,充分实现主
线程和子线程进行并行处理;线程处理模块能对主线程和子线程统一管理,使得管理简单
而统一,提升稳定性。

上述实施例中,所述线程处理模块4创建主线程和子线程过程中分别向主线程和
子线程中植入智能指针;

主线程和子线程中植入智能指针,通过智能指针能保证主线程和子线程能相对自
动处理,使得运行更加流畅和快速。

实施例2:

如图1所示,一种多线程处理系统,包括多线程创建系统及其创建的第一线程消息
队列、第二线程消息队列、主线程和子线程;

所述接口模块1,用于接收外部的操作指令,传输至窗口对象模块2;还用于对第一
处理结果传输至外部进行显示;还用于对第二处理结果传输至外部进行显示;

所述窗口对象模块2,用于对操作指令所要求执行的任务进行判断,当判断所要执
行的任务需要在线程处理时,提取对应主线程传输至线程消息队列模块3,并生成第一处理
结果返回接口模块1;

所述线程消息队列模块3,用于将主线程放入第一线程消息队列进行保存和排序;

所述线程处理模块4,用于读取第一线程消息队列内的主线程,通过主线程进行处
理,调取资源执行对应任务,完成任务时向接口模块1返回第二处理结果;完成任务后将子
线程放入第二线程消息队列中,通过子线程清除主线程调取的资源,清除窗口对象。

能使主线程在第一线程消息队列中保存排序,能使子线程在第二线程消息队列中
保存排序,充分实现主线程和子线程进行并行处理;线程处理模块4能对主线程和子线程统
一管理,使得管理简单而统一,提升稳定性,能减少临界区,改善程序的流程性,提高用户体
验,线程的处理规范化,也可以保证系统稳定性。

上述实施例中,所述窗口对象模块2对操作指令所要求执行的任务进行判断,当所
要执行的任务延时或者执行任务所用的资源只是在线程中,则所要执行的任务需要在线程
处理。

窗口对象模块2对操作指令所要求执行的任务进行判断,能提升对延时高的任务
或者所用的资源只是在线程中的任务进行高效处理,能对减少临界区,改善程序的流程性,
提高用户体验,线程的处理规范化,也可以保证系统稳定性。

上述实施例中,所述接口模块1,用于根据第一处理结果生成清理窗口指令,传输
至窗口对象模块2;还用对清理结束信号进行显示;

所述窗口对象模块2,用于根据清理窗口指令调取子线程传输至线程消息队列模
块3;还用于根据第三处理结果通过主线程隐藏窗体对象;还用于根据第四处理结果清理窗
体对象,向接口模块1返回清理结束信号;

所述线程消息队列模块3,用于将子线程放入第二线程消息队列进行保存和排序,
生成第三处理结果返回窗口对象模块2;

所述线程处理模块4,用于读取第二线程消息队列中的子线程,清除主线程调取的
资源,同时关闭子线程;完成任务时向窗口对象模块2返回第四处理结果;

要清理窗体的时候,主线程隐藏这个窗体,然后给这个窗体的子线程一个退出的
消息;这样,就实现“伪删除窗体过程”的过程;当子线程退出后,发送消息给主线程,这时,
主线程才开始真正清理窗体,因不用等待高延时的子线程,所以该过程是非常快的。

子线程的清理过程与主线程是并行,异步的;用户清理任务只是将窗体隐藏,然后
资源清理用子线程处理,子线程得到充分的利用,而又不影响主线程工作;使得释放变动非
常流畅和快速。

上述实施例中,所述线程处理模块4还用于调取主线程,主线程根据第四处理结果
清理清理窗体对象;主线程的清理过程能与子线程的清理过程异步并行处理,使得释放变
动非常流畅和快速。

实施例3:

如图2所示,一种多线程创建方法,包括以下步骤:

步骤A1.接收外部的窗体对象指令,根据窗体对象指令生成窗体对象,同时分别生
成创建第一线程消息队列指令、创建第二线程消息队列指令、创建主线程指令和创建子线
程指令;

步骤A2.根据创建第一线程消息队列指令和创建第二线程消息队列指令分别创建
第一线程消息队列和第二线程消息队列,并返回第一创建成功消息;根据创建主线程指令
和创建子线程指令分别创建主线程和子线程,并返回第二创建成功消息;

步骤A3.根据第一创建成功消息和第二创建成功消息输出窗体对象,将窗体对象
传输至外部进行显示。

通过创建第一线程消息队列、第二线程消息队列、主线程和子线程,能使主线程在
第一线程消息队列中保存排序,能使子线程在第二线程消息队列中保存排序,充分实现主
线程和子线程进行并行处理;能对主线程和子线程统一管理,使得管理简单而统一,提升稳
定性。

上述实施例中,在步骤A2中,创建主线程和子线程过程中分别向主线程和子线程
中植入智能指针;主线程和子线程中植入智能指针,通过智能指针能保证主线程和子线程
能相对自动处理,使得运行更加流畅和快速。

实施例4:

如图3所示,一种多线程处理方法,包括以下步骤:

步骤B1.接收外部的操作指令,对操作指令所要求执行的任务进行判断,当判断所
要执行的任务需要在线程处理时,提取对应主线程传输至第一线程消息队列,并生成第一
处理结果传输至外部进行显示;

步骤B2.将主线程放入第一线程消息队列进行保存和排序;

步骤B3.读取第一线程消息队列内的主线程,通过主线程进行处理,调取资源执行
对应任务,完成任务时返回第二处理结果传输至外部进行显示;完成任务后还清除主线程
调取的资源,清除窗口对象。

能使主线程在第一线程消息队列中保存排序,能使子线程在第二线程消息队列中
保存排序,充分实现主线程和子线程进行并行处理;能对主线程和子线程统一管理,使得管
理简单而统一,提升稳定性,能减少临界区,改善程序的流程性,提高用户体验,线程的处理
规范化,也可以保证系统稳定性。

上述实施例中,步骤B1中对操作指令所要求执行的任务进行判断,当所要执行的
任务延时或者执行任务所用的资源只是在线程中,则所要执行的任务需要在线程处理;对
操作指令所要求执行的任务进行判断,能提升对延时高的任务或者所用的资源只是在线程
中的任务进行高效处理,能对减少临界区,改善程序的流程性,提高用户体验,线程的处理
规范化,也可以保证系统稳定性。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和
原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

多线程创建系统及方法、多线程处理系统及方法.pdf_第1页
第1页 / 共11页
多线程创建系统及方法、多线程处理系统及方法.pdf_第2页
第2页 / 共11页
多线程创建系统及方法、多线程处理系统及方法.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《多线程创建系统及方法、多线程处理系统及方法.pdf》由会员分享,可在线阅读,更多相关《多线程创建系统及方法、多线程处理系统及方法.pdf(11页珍藏版)》请在专利查询网上搜索。

本发明涉及多线程创建系统及方法、多线程处理系统及方法,多线程创建系统包括:接收外部的窗体对象指令,并传输至窗口对象模块;还将窗体对象传输至外部进行显示的接口模块;生成窗体对象,同时分别生成创建第一线程消息队列指令、创建第二线程消息队列指令、创建主线程指令和创建子线程指令;还向接口模块输出窗体对象的窗口对象模块;创建第一线程消息队列和第二线程消息队列,并向窗口对象模块返回第一创建成功消息的线程消息队。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1