买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于信号的线程间通信方法_南京天创电子技术有限公司_202211461010.6 

申请/专利权人:南京天创电子技术有限公司

申请日:2022-11-17

公开(公告)日:2023-03-14

公开(公告)号:CN115658349B

主分类号:G06F9/54

分类号:G06F9/54

优先权:

专利状态码:有效-授权

法律状态:2023.03.14#授权;2023.02.17#实质审查的生效;2023.01.31#公开

摘要:本发明公开的基于信号的线程间通信方法,包括:创建双向循环链表;启动线程,将线程信息的数据结构插入到所述双向循环链表中对应线程节点的数据域;获取双向循环链表中任一发起线程向另一目标线程的数据发送请求;查询所述目标线程中数据域的数据锁结构,若数据锁结构为非锁定状态,将目标线程的数据锁结构调整为锁定状态,调用发送函数将要传递的数据发送至目标线程并存储至目标线程中数据域的数据存储结构;目标线程持续查询自身数据源的数据存储结构,通过调用查询函数返回新的传递数据。本发明线程间直接通过发送信号来通信,信号里可以携带自定义数据,灵活性和适用性很强。

主权项:1.一种基于信号的线程间通信方法,其特征在于,包括如下步骤:S1:创建双向循环链表;S2:启动线程,将线程信息的数据结构插入到所述双向循环链表中对应线程节点的数据域;所述线程信息的数据结构为:structtThreadInfo{structlist_headlist;pthread_tpid;charthreadName[32];tThreadQueuemsgList;pthread_mutex_tthreadQueueMutex;};其中,structtThreadInfo代表线程信息tThreadInfo为结构体类型,每个线程信息tThreadInfo的结构体包含的元素有:数据类型structlist_head包含两个指向list_head结构的指针prev和next,元素list用于遍历双向循环链表;数据类型pthread_t是声明线程ID,元素pid用于存放线程id;数据类型char为字符串,元素threadName[32]用于存放线程名字,字符串的位数是32位;数据类型tThreadQueue为自定义的结构体,元素msgList用于存放线程间传递的数据信息;数据类型pthread_mutex_t为线程锁,元素threadQueueMutex针对msgList的锁,对msgList的访问进行保护;所述元素msgList的数据结构tThreadQueue定义为:structtThreadQueue{tThreadMsgmsgQueue[N];intfront;intrear;};其中:msgQueue[N]存放的是真正的交互信息,包括信号以及携带的数据,N为单个线程存储的数据条数,每条交互信息tThreadMsg数据结构为:structtThreadMsg{intsignal;void*pMsgData;};其中,signal变量用于存放msgQueue的信号,*pMsgData变量用于存放msgQueue中的数据;intfront是指头指针,始终指向队列的头部,intrear是指尾指针,始终指向队列的尾部;S3:发送方线程调用信号发送函数向目标线程请求发送数据,调用信号发送函数时,发送方线程将目标线程的名字和待传递的数据作为函数入参;S4:信号发送函数收到请求后,根据请求中目标线程的名字从双向循环链表中获取对应目标线程节点的数据域,然后将待传递的数据存储到目标线程中数据域的数据存储结构;S5:目标线程持续查询自身数据域的数据存储结构,通过调用查询函数返回新的已传递数据。

全文数据:

权利要求:

百度查询: 南京天创电子技术有限公司 一种基于信号的线程间通信方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。