一种适用于多线程任务的定时器实现方法和装置与流程

文档序号:36293988发布日期:2023-12-07 03:59阅读:47来源:国知局
一种适用于多线程任务的定时器实现方法和装置与流程

本申请属于计算机,具体涉及一种适用于多线程任务的定时器实现方法和装置。


背景技术:

1、定时器是操作系统中的基础服务组件,其主要作用是产生一个时基,以实现一些与超时或周期性相关的功能,例如在嵌入式操作系统中实现控制led灯的闪烁、按键的消抖、传感器的采样等功能。其具体又可分为硬件定时器和软件定时器,软件定时器是程序模拟出来的定时器,其通过一个硬件定时器产生固定的时钟节拍,通过设计相应程序实现定时。多线程是指从软件或者硬件上实现多个线程并发执行的技术,其构思是允许一个程序同时执行多个任务,提高性能和响应速度。在市面上常见的嵌入式操作系统中,多线程编程模式下不同线程的定时器的实现代码复杂度高,且运行时存在资源开销较大、延时多等问题。


技术实现思路

1、针对上述问题,本发明第一方面提出一种适用于多线程任务的定时器实现方法,包括步骤:创建多线程任务,并为每个线程分配对应的定时器池;线程从对应的定时器池中获取定时器;线程操作定时器。

2、该方案提出了多线程私有定时器的设计,每个线程只能从当前线程对应的定时器池内创建和操作,而无法操作其他线程的定时器,避免线程间的定时器干扰。

3、优选地,线程分配对应的定时器池通过创建线程的定时器对象实现。

4、优选地,定时器对象的数据结构包括线程id,线程id为当前线程的唯一标识,用于关联定时器对象与当前线程。

5、优选地,线程从对应的定时器池中获取多个定时器。

6、优选地,定时器对象的数据结构包括定时器链表,多个定时器放置于当前定时器对象的定时器链表内。

7、优选地,还包括步骤:提供定时器对象链表,用于放置多个线程的多个定时器对象。

8、本发明第二方面提出一种适用于多线程任务的定时器实现装置,包括:

9、私有定时器池生成模块,配置用于创建多线程任务,并为每个线程分配对应的定时器池;

10、定时器生成模块,配置用于线程从对应的定时器池中获取定时器;

11、定时器操作模块,配置用于线程操作定时器。

12、优选地,还包括:定时器对象生成模块,配置用于线程分配对应的定时器池通过创建线程的定时器对象实现。

13、优选地,定时器对象的数据结构包括线程id,线程id为当前线程的唯一标识,用于关联定时器对象与当前线程;线程从对应的定时器池中获取多个定时器;定时器对象的数据结构包括定时器链表,多个定时器放置于当前定时器对象的定时器链表内。

14、优选地,还包括定时器对象链表,用于放置多个线程的多个定时器对象。

15、本方案对多线程任务中的每个线程提供私有定时器,这些私有定时器都是在本线程中运行,避免了线程间通信,可以在定时器直接处理业务逻辑,不需要通过消息邮箱等机制来实现线程间的通信。每个线程中的定时器数量和执行时间只受本线程的资源限制,不会影响其他线程中的定时器的执行,提高了定时器的精度。同时,通过引入线程id和链表,让线程间的定时器互相隔离,互不干扰,当前线程创建的定时器无法被其他线程操作,与现有技术中所有线程共享一个公共定时器的方案相比,本方案不仅可以简化应用开发,还可以避免人为的定时器误操作。



技术特征:

1.一种适用于多线程任务的定时器实现方法,其特征在于,包括步骤:

2.根据权利要求1所述的适用于多线程任务的定时器实现方法,其特征在于,所述线程分配对应的定时器池通过创建线程的定时器对象实现。

3.根据权利要求2所述的适用于多线程任务的定时器实现方法,其特征在于,所述定时器对象的数据结构包括线程id,所述线程id为当前线程的唯一标识,用于关联所述定时器对象与当前线程。

4.根据权利要求2所述的适用于多线程任务的定时器实现方法,其特征在于,所述线程从对应的定时器池中获取多个定时器。

5.根据权利要求4所述的适用于多线程任务的定时器实现方法,其特征在于,所述定时器对象的数据结构包括定时器链表,所述多个定时器放置于当前定时器对象的定时器链表内。

6.根据权利要求2所述的适用于多线程任务的定时器实现方法,其特征在于,还包括步骤:提供定时器对象链表,用于放置多个线程的多个定时器对象。

7.一种适用于多线程任务的定时器实现装置,其特征在于,包括:

8.根据权利要求7所述的适用于多线程任务的定时器实现装置,其特征在于,还包括:

9.根据权利要求8所述的适用于多线程任务的定时器实现装置,其特征在于,

10.根据权利要求7所述的适用于多线程任务的定时器实现装置,其特征在于,还包括定时器对象链表,用于放置多个线程的多个定时器对象。


技术总结
本发明提出一种适用于多线程任务的定时器实现方法和装置,方法包括步骤:创建多线程任务,并为每个线程分配对应的定时器池;线程从对应的定时器池中获取定时器;线程操作定时器。本方案对多线程任务中的每个线程提供私有定时器,这些私有定时器都是在本线程中运行,避免了线程间通信,可以在定时器直接处理业务逻辑,不需要通过消息邮箱等机制来实现线程间的通信。每个线程中的定时器数量和执行时间只受本线程的资源限制,不会影响其他线程中的定时器的执行,提高了定时器的精度。同时,通过引入线程ID和链表,让线程间的定时器互相隔离,互不干扰。

技术研发人员:苏友江,黄志文,曾繁书,刘富荣,李进耀
受保护的技术使用者:漳州立达信光电子科技有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1