社区
C++ 语言
帖子详情
如何编写一个任务类
cobra_chen
2012-06-15 08:49:02
1.设备只能做一个任务。
2.用户可以一直下任务,这个时候需要把这些任务都存储下来。
3.任务有一个优先级,执行的时候先做优先级高的。
4.优先级相同按时间顺序执行。
5.若时间也相同,删除未执行的任务。
6.可以产生周期任务(每隔一段时间,产生一个任务)。
7.可以删除任务。
8.支持多线程。
-
各位提供点思路吧。
...全文
134
11
打赏
收藏
如何编写一个任务类
1.设备只能做一个任务。 2.用户可以一直下任务,这个时候需要把这些任务都存储下来。 3.任务有一个优先级,执行的时候先做优先级高的。 4.优先级相同按时间顺序执行。 5.若时间也相同,删除未执行的任务。 6.可以产生周期任务(每隔一段时间,产生一个任务)。 7.可以删除任务。 8.支持多线程。 - 各位提供点思路吧。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cobra_chen
2012-06-15
打赏
举报
回复
对,有这方便比较经典的算法么?
本人对2,6,8压力比较大。
或者有什么类似的开源代码么?
[Quote=引用 3 楼 的回复:]
这个类里面貌似要带调度算法和优先级队列什么的了。
[/Quote]
大尾巴猫
2012-06-15
打赏
举报
回复
要有1个优先队列,而且这个队列是可以在队列中间进行只读访问和删除的(为了满足删除任务的需求)
队列设计为类的静态成员,所有类的实例共享这一队列,
需要设置一个静态的CriticalSection,用来同步各线程对队列的操作。
然后把上面这些作为一个基类的protected的成员和函数
派生出下面3个类
用户的类 负责把用户的输入的任务加入队列尾。
周期类 有一个计时器自动间隔一定时间触发的线程提供周期任务
设备类 用一个信号量来触发,只要有任务就做,没任务等待,信号量资源的增加由提供任务的线程负责
初步能想到的就是这些。
真的做起来还是很麻烦的。
酱油党
2012-06-15
打赏
举报
回复
描述太抽象了,所以说知识多了也不好!~
W170532934
2012-06-15
打赏
举报
回复
这个类里面貌似要带调度算法和优先级队列什么的了。
qingcairousi
2012-06-15
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
思路是实践出来的,如果没思路就什么都别管,狂码代码就行了,等最后不行的你会修改和重构它,这时候就有思路了。
[/Quote]
不一定会修改和重构,也许会对着自己也看不懂的代码发呆一会,掀桌:老子不干了!
hard9999
2012-06-15
打赏
举报
回复
思路是实践出来的,如果没思路就什么都别管,狂码代码就行了,等最后不行的你会修改和重构它,这时候就有思路了。
dasjdka
2012-06-15
打赏
举报
回复
不要怕难,既然知道功能要求,自己尝试写,写着写着,你就完成了。
UnknowName
2012-06-15
打赏
举报
回复
如果系统有本地数据库还是把任务存在数据库中,需要的时候遍历排序,读取。
多线程的问题并不能给你多少建议。 如果不考虑效率问题的话,一个线程最安全可靠。
这个你依据具体的情况具体分析吧。
UnknowName
2012-06-15
打赏
举报
回复
任务管理 和 任务执行 分成两个模块,中间用抽象接口衔接。
任务管理,主要负责任务的添加、删除、和排序(包括优先级)。
要执行任务的时候通过 一个 common对象将任务传给 任务执行模块。 有任务模块执行。
周期任务是任务的一种特殊情况,根据实际的情况考虑使用继承或者组合。
多线程可以抽离成一个模块,供任务执行模块使用。
具体你是使用什么样的方式来实现,这个根据个人喜好吧。 队列或者链表都行。
这么做的好处是各模块之间协作依赖抽象接口,并且可以分开各自开发。方便项目管理。
cobra_chen
2012-06-15
打赏
举报
回复
和我想的差不多,我觉得没必要把任务设置为静态的。
毕竟如果有第二种任务,就无法完成了。
也没有分用户类,周期类。
我的想法是一个类,然后提供不同的接口。
-
周期任务怎么产生?
下达一个周期任务就去把所有周期都产生。(如果这样,周期太长,就会有大量的任务,存储是个问题)
再或者用另一个线程,然后用类似定时器的原理去产生?那么如果说,周期任务很多的话,那么就可能会消耗比较多的线程,资源是个问题。如果用一个线程,同样多个任务并发产生的时候,时间是个问题。
不知道如何取舍,或者有更好的方法?
因为这个设备会运行长达1年甚至3年以上。所以要考虑一些极端的条件。
[Quote=引用 5 楼 的回复:]
要有1个优先队列,而且这个队列是可以在队列中间进行只读访问和删除的(为了满足删除任务的需求)
队列设计为类的静态成员,所有类的实例共享这一队列,
需要设置一个静态的CriticalSection,用来同步各线程对队列的操作。
然后把上面这些作为一个基类的protected的成员和函数
派生出下面3个类
用户的类 负责把用户的输入的任务加入队列尾。
周期类 有一个计时器自动间隔一定时间……
[/Quote]
Binzo
2012-06-15
打赏
举报
回复
有点像要做出个任务系统(os)似的。
零基础Java入门课程-
类
和对象
线程状态的转换:新建、就绪、运行、阻塞、死亡 线程的调度:sleep、yield、join、interrupt、wait 后台线程、定时
任务
线程的并发与同步、同步锁、同步块、线程安全的
类
Lock接口、CAS、volatile修饰符 内部
类
成员...
本关
任务
:
编写
一个
Point
类
,有x、y两个属性。
编写
一个
PointDemo
类
,并提供
一个
distance(Point p1,Point p2)方法用于计算两点之间的距离,实例化两个具体的Point对
本关
任务
:
编写
一个
Point
类
,有x、y两个属性。
编写
一个
PointDemo
类
,并提供
一个
distance(Point p1,Point p2)方法用于计算两点之间的距离,实例化两个具体的Point对象并显示他们之间的距离。 解题思路 首先,需要...
2.
编写
一个
程序要求定义
一个
外部
类
Outer,然后在 Outer
类
中定义
一个
内部
类
Inner 和局部
类
Local,内部
类
Inner 和局部
类
Local 的
任务
都是显示出外部
类
中的数组元素
2.
编写
一个
程序要求定义
一个
外部
类
Outer,然后在 Outer
类
中定义
一个
内部
类
Inner 和局部
类
Local,内部
类
Inner 和局部
类
Local 的
任务
都是显示出外部
类
中的数组元素, 然后求出这些数组元素的平均值。 请按模版...
类
和对象(1)
任务
1:
编写
学员
类
,输出学员相关信息
任务
2:
编写
教员
类
,输出教员相关信息
任务
3:
编写
矩形
类
,求矩形面积
(1) 学员
类
有
一个
String
类
型的变量姓名,
一个
int
类
型的变量年龄,
一个
int
类
型的变量班级,
一个
String
类
型的变量兴趣。在学生
类
中定义自我介绍的方法,用于输出学员个人信息。 (2) 在主
类
Demo的main方法中用学员...
编写
一个
程序,其中有
一个
汽车
类
Vehicle,它具有
一个
需要传递参数的构造函数,
类
中的数据成员:车轮个数wheels和车重weight为保护属性;小车
类
Car是它的私有派生
类
,其中包含载人数passa
编写
一个
程序,其中有
一个
汽车
类
Vehicle,它具有
一个
需要传递参数的构造函数,
类
中的数据成员:车轮个数wheels和车重weight为保护属性;小车
类
Car是它的私有派生
类
,其中包含载人数passager_load;卡车
类
Truck是...
C++ 语言
64,648
社区成员
250,503
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章