一种数据库系统中线程间的模拟信号通信方法技术方案

技术编号:8190980 阅读:228 留言:0更新日期:2013-01-10 01:52
本发明专利技术公开了一种数据库系统中线程间的模拟信号通信方法,包括:数据库系统下直接设置一信号管理器,信号管理器中设置并存储各个线程的线程消息ThreadInfo,在该线程消息ThreadInfo中设置本线程可接收并处理不同信号信息,并设置不同信号对应的标识;在线程开始时注册本线程各个信号所对应的处理函数信息;当某一线程需要给目标线程发送信号时,在该目标线程的线程消息ThreadInfo中修改该信号对应标识;该目标线程接收该标识,并通过该信号对于应的处理函数进行处理。本发明专利技术实施方式的线程间的模拟信号通信方法,采用类似进程间通信的信号机制,由信号管理器统一管理和调度各线程信号处理函数,去除了代码中为通信而定义的大量状态变量,使得各线程的任务单一化,从而使得代码的更强的可读性和可维护性,技术方案简单,方便实用。

【技术实现步骤摘要】

本专利技术涉及通信
,特别涉及。
技术介绍
随着现代信息产业的不断深入发展,对于信息的集成和共享的需求也变得日益迫切。为了增大吞吐量,提高CPU的利用率,服务器端的程序一般都会采用多线程技术或者多进程技木。相对于单线程/迸程来说,多进程/线程模式的效率更高,但是随之而来的,程序复杂性会急剧増大,因为多个线程/进程为了完成特定的功能必须要相互协作,也就是它们需要同步和通信。 在unix系统中,进程间的通信可以通过信号来实现,在进程启动时,首先调用signal (signo, handle)注册 信号处理函数,然后等待其他进程发送信号来作出相应的动作。这种机制非常地方便。而对于多线程来说,通常是通过全局变量来实现的,工作线程通过检测全局变量值的变化来作出相应的动作。这种方式在简单的应用中已经足够了,但是在像数据库系统这种复杂的系统中使用将会使得代码的可读性及可维护性下降。这种通过全局状态变量来通信的做法,对于线程数量少,通信需求不大的情形来说已经足够了,但是对于数据库这种复杂的系统来说,这种技术方案主要有以下几个缺点全局变量泛滥;代码的可读性下降;可维护性下降;代码的复杂性增加,本文档来自技高网...

【技术保护点】
一种数据库系统中线程间的模拟信号通信方法,其特征在于,包括:数据库系统下直接设置一信号管理器,所述信号管理器中设置并存储各个线程的线程消息ThreadInfo,在该线程消息ThreadInfo中设置本线程可接收并处理不同信号信息,并设置不同信号对应的标识;在线程开始时注册本线程各个信号所对应的处理函数信息;当某一线程需要给目标线程发送信号时,在该目标线程的线程消息ThreadInfo中修改该信号的对应标识;该目标线程接收该标识,并通过该信号对相应的处理函数进行处理。

【技术特征摘要】

【专利技术属性】
技术研发人员:李书淦李浩赵伟郑程光孙伟丰罗正海李泉程仁波
申请(专利权)人:上海方正数字出版技术有限公司
类型:发明
国别省市:

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

1