【技术实现步骤摘要】
一种具有消息代理功能的消息模型及消息处理方法
[0001]本专利技术涉及软件通信
,特别涉及一种具有消息代理功能的消息模型。
技术介绍
[0002]在软件通信领域中,软件开发人员为提高UI的响应能力,经常会同时使用工作者线程和UI线程。UI通过UI线程进行绘制,这个线程维护一个“消息队列”,而工作者线程本质上是没有消息队列的,因此“消息队列”是UI线程与工作者线程最大的区别。
[0003]目前UI软件大多采用线程锁、临界点等方式实现的消息模型来解决工作者线程与UI线程间通信的问题,或是在工作者线程中执行UI线程想要执行的操作。这种保证线程安全的方法存在固有的缺点:一是代码繁琐,二是容易产生死锁及线程之间的争抢。
技术实现思路
[0004]为了解决现有技术中存在的缺陷,本专利技术的目的在于提供一种具有消息代理功能的消息模型及消息处理方法,通过添加消息代理来完成线程之间的通信,不需要修改消息处理函数,避免了线程争抢与死锁,同时简化了代码。
[0005]为了实现上述目的,本专利技术提供的具有消 ...
【技术保护点】
【技术特征摘要】
1.一种具有消息代理功能的消息模型,其特征在于,包括,发布者单元、消息传输层,以及订阅者单元,其中,所述发布者单元,用于发布和生产消息,将消息发布到所述消息传输层;所述消息传输层,用于传输和管理所述发布者单元发布的消息;所述订阅者单元,用于订阅消息、消息代理、接收消息和响应消息。2.根据权利要求1所述的具有消息代理功能的消息模型,其特征在于,所述发布者单元,还包括,发布信息模块和生产消息模块,其中,所述发布消息模块,其调用注册消息接口进行消息注册;所述生产消息模块,其调用推送消息接口将发布的消息推送给所述消息传输层。3.根据权利要求1所述的具有消息代理功能的消息模型,其特征在于,所述消息传输层,还包括,消息管理模块和消息队列模块,其中,所述消息管理模块,其管理所述发布者单元发布的消息与所述订阅者单元订阅的消息之间的对应关系;所述消息队列模块,用于存储当前消息的最新状态。4.根据权利要求1所述的具有消息代理功能的消息模型,其特征在于,所述消息队列模块,还包括,存储消息代理的消息代理存储模块和存储消息响应函数的消息响应存储模块。5.根据权利要求1所述的具有消息代理功能的消息模型,其特征在于,所述订阅者单元,还包括,订阅消息模块、消费消息模块、消息代理接口模块、无代理消息响应模块,以及消息代理模块,其中,所述订阅消息模块,其为所述订阅者单元提供消息订阅接口,用于订阅消息和注册消息代理;所述消费消息模块,其负责调度消息代理和消息分发;所述消息代理接口模块,其负责提供消息传递接口,用于传递消息和消息处理函数;所述无代理消息响应模块,其对未注册代理的消息进行响应;所述消息...
【专利技术属性】
技术研发人员:齐电海,关鹏,
申请(专利权)人:北京宇系航通科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。