网络编程中的定时任务如何创建管理
Posted 我要出家当道士
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程中的定时任务如何创建管理相关的知识,希望对你有一定的参考价值。
1、项目需求
在网络开发过程中经常需要创建定时任务,例如特定包的重传,会话的定时删除或者创建定时任务等。而且由于整个项目中可能出现多种类型的定时器任务,所以我们需要设计一种通用的定时器,可以根据定时器任务类别执行相应的操作。
2、解决思路
在解决这个问题的时候,我并没有参考别人的思路,只是觉得自己的想法很不错,实现起来也比较容易,所以如果你在看了我的文章之后有更好的想法,热烈欢迎评论区参与讨论。下面开始讲解我的思路。
我的想法是,设计一个时间线线程,这个线程按照时间线来执行定时任务(定时任务不存在耗时、阻塞型任务)。这个可以通过链表来实现,链表中每个节点都是一个定时任务,链表的节点都是按照时间进行排序(从小到大),线程死循环读取链表中最近时间节点的任务(即头节点后的第一个节点),读取完任务后如果时间还没到,则阻塞到该时间点(不会影响其他时间节点,因为链表按时间排序)。如果在阻塞等待时间点的过程中,添加了新的节点,则打断线程的阻塞状态,插入节点后重新执行。
以上是关于网络编程中的定时任务如何创建管理的主要内容,如果未能解决你的问题,请参考以下文章