- 博客(0)
- 资源 (3)
- 收藏
- 关注
Linux内核红黑树封装的通用红黑树
通用红黑树
说明:
用Linux内核红黑树封装的一个通用型的红黑树
如何使用该红黑树:
见rbtest1.c和rbtest2.c
直接make生成rbtest1和rbtest2
作者:rcyh
日期:2011年7月21日
------------------------------------------
Omnipotent Red-black tree
comment:
Red-black tree the Linux kernel package with a omnipotent red-black tree
how to use:
see rbtest1.c and rbtest2.c
Directly generate rbtest1 and rbtest2 make
You can modify and run
author: rcyh
date: 07/21/2011
2011-07-21
带优先级的多任务管理模块(C)
多任务多线程管理模块,任务有优先级,一个任务执行完毕,按照优先级高低执行另一个任务
1)如何使用:
1. 声明一个HashTaskList,或在栈上动态获取;
2. 调用InitTaskList初始化上一步的HashTaskList
3. 调用StartTaskManager开始启动任务管理
***** 对于一个HashTaskList而言,以上2个函数只调用一次
4. 调用ApplyTask向第一步得到的结构对象添加任务,每调用一次添一个任务
2)如何终止任务管理功能:
1. 程序结束,终止程序既停止管理并且释放所有资源,请看2).2括号的内容
2. 调用某个函数,这个功能未写(考虑到模块作为服务运行,不需要终止任务管理的函数)
需要取消所有1v1管理线程,在此需要一个列表保存这些线程的ID
需要清理表当中的互斥锁和信号变量,如果1).1.是动态分配,要释放
3)关于改进:
1. 回收资源的线程和TaskList reclaim[LEVEL_ARRAY_LIMIT];是可以省掉的
但考虑到模块功能的延伸:
如果任务执行失败,先移动到某个地方,过段时间在放回来重试,等等...
其实还有很多可能用到它的地方...所以,依旧保留
2. 有多少个任务可以并发管理目前是固定的
其实可添加一个对StartTaskManager所生成的线程管理的数据结构
这样就能动态的增加或减少任务管理的1v1线程
***** 可事实上我并不想做这个管理的东西在里面
***** 没有必要,对提供服务的程序而言这东西一般是固定不变的
*********************************************
1) How to use:
1. Declare a HashTaskList, or dynamic access stack;
2. Call the initialization of step HashTaskList InitTaskList
2010-11-02
Linux Relay 网站服务器源码(C写)
C语言写的网站服务器, 可支持通过URL执行远程shell,有能力者可稍微扩展和修改,支持CGI,php等 本人写此仅因兴趣探索网站服务器处理的大概流程,故代码仅仅点到即止,有兴趣者可适当扩展功能,
本软件为自由软件
2010-11-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人