【技术实现步骤摘要】
一种多线程数据架构、多线程消息传递方法及系统
本专利技术属于多线程开发
,具体涉及一种多线程数据架构、多线程消息传递方法及系统。
技术介绍
在计算机程序中,多线程程序具有能有效发挥CPU的运算资源的优点,而所有多线程软件都需要共同面对跨线程消息传递的问题。计算机程序在不同线程间进行数据传递时,其最底层都是实用共享内存的方法,也即在内存中开辟一块空间,允许不同线程共同拥有所述空间的访问权。实际代码中,为了减少数据的拷贝量,跨线程发送信息时往往并不是发送完整的数据,而只是发送所述数据所在的内存地址。由于数据量短小,这些信息片段也因而常被成为消息。传递一般被称为跨线程消息传递,被传递的信息泛称为消息。跨线程消息传递会面临到数据同步、资源互锁等问题,对软件而言是一个具有一定风险的操作,开发过程中需要程序员格外小心。同步是指不同线程对同一资源的访问必须在时间上加以区隔,不能一条线程还没操作完,另一条线程就又介入进来,否则就会造成数据错误。为了协调不同线程对同一块资源的访问,许多编程语言都提供了锁的概念。锁是一个标志位,用于标识某块资源是否正在使用中。对于正在使用中的资源,别的线程也想要使用它的话必须要先等待,等到开锁释放所述资源的使用权才可以介入使用。而使用标志锁又可能引发多条线程需要使用的多个资源相互锁住,造成程序卡死。跨线程消息传递具有很大的风险性,一旦把握不好很容易导致程序崩溃。因而对软件开发团队而言,开发多线程程序具有很大不确定性和工程风险。尽管多线程可以更好的发挥CPU计算资源,但开发多线程程序 ...
【技术保护点】
1.一种多线程数据架构,其特征在于,包括逻辑变量、逻辑节点、节点列表、神经元、神经元中枢和神经元线程;/n所述逻辑变量,用于表示业务范围内所涉及的各个逻辑变量,每一个逻辑变量均有对应的变量名;/n所述逻辑节点,用于表示不同逻辑变量之间的因果关系,每个逻辑节点包含代表节点的逻辑变量,以及对所述逻辑变量的状态产生影响的所有上游逻辑变量;/n所述节点列表,用于根据逻辑关系记录存储各个实例化的逻辑节点对象;/n所述神经元,用于表示逻辑节点内各逻辑变量之间的逻辑推理行为,每个神经元包含代表对应节点的逻辑变量,以及所述逻辑变量与上游逻辑变量实现因果关系的逻辑推理算法;/n所述神经元中枢,用于集中存放神经元,在程序开始运行时,实例化后的神经元中枢载入节点列表,并根据节点列表的内容实例化全部的神经元对象,进而根据节点列表记录的逻辑关系构建逻辑网;/n所述神经元线程,每个实例化后的神经元线程对象向神经元中枢注册,神经元中枢将注册的神经元线程与对应的神经元对象相关联;神经元对象在感知到输入状态改变后,触发关联的神经元线程对象进行所需运算,进而进行整个逻辑网的多线程运算。/n
【技术特征摘要】
1.一种多线程数据架构,其特征在于,包括逻辑变量、逻辑节点、节点列表、神经元、神经元中枢和神经元线程;
所述逻辑变量,用于表示业务范围内所涉及的各个逻辑变量,每一个逻辑变量均有对应的变量名;
所述逻辑节点,用于表示不同逻辑变量之间的因果关系,每个逻辑节点包含代表节点的逻辑变量,以及对所述逻辑变量的状态产生影响的所有上游逻辑变量;
所述节点列表,用于根据逻辑关系记录存储各个实例化的逻辑节点对象;
所述神经元,用于表示逻辑节点内各逻辑变量之间的逻辑推理行为,每个神经元包含代表对应节点的逻辑变量,以及所述逻辑变量与上游逻辑变量实现因果关系的逻辑推理算法;
所述神经元中枢,用于集中存放神经元,在程序开始运行时,实例化后的神经元中枢载入节点列表,并根据节点列表的内容实例化全部的神经元对象,进而根据节点列表记录的逻辑关系构建逻辑网;
所述神经元线程,每个实例化后的神经元线程对象向神经元中枢注册,神经元中枢将注册的神经元线程与对应的神经元对象相关联;神经元对象在感知到输入状态改变后,触发关联的神经元线程对象进行所需运算,进而进行整个逻辑网的多线程运算。
2.根据权利要求1所述的多线程数据架构,其特征在于,所述神经元线程是Bot类的一个子类,继承Bot类的属性和方法。
3.一种多线程消息传递方法,基于权利要求1或2所述的一种多线程数据架构,其特征在于,包括以下步骤:
一个神经元线程对象的工作线程产生消息时,所述神经元线程对象通过fireup函数将消息数据传递给关联的神经元对象;
神经元对象根据消息数据感知到逻辑状态值发生变化时,所述神经元对象调用fire函数将逻辑状态值推送给下游神经元对象;
下游神经元对象在感知到输入的逻辑状态值变化时,唤醒关联的下游神经元线程对象的工作线程,下游神经元线程对象利用input函数接收输入的消息数据,并在自身线程内对消息数据进行处理,从而完成一个线程到另一个工作线程的消息传递。
4.根据权利要求3所述的一种多线程消息传递方法,其特征在于,还包括以下步骤:
初始化每个神经元线程对象,并将每个神经元线程对象与对应的神经元对象相关联。
5.根据权利要求3所述的一种多线程消息传递方法,其特征在于,所述初始化每个神经元线程对象,并将每个神经元线程对象与对应的神经元对象相关联,具体为:
程序启动后实例化神经元中枢和神经元线程对象;
神经元中枢载入节点列表,根据节点列表的内容实例化全部的神经元对...
【专利技术属性】
技术研发人员:林嘉,
申请(专利权)人:南昌嘉研科技有限公司,
类型:发明
国别省市:江西;36
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。