linux系统中每个进程由一个进程id标识,在内核中对应一个task_struct结构的进程描述符,系统中所有进程的task_struct通过链表链接在一起,在内核中,经常需要通过进程id来获取进程描述符,最简单的方法可以通过遍历task_struct链表并对比id的值来获取,但这样效率太低,尤其当...
分类:
系统相关 时间:
2015-03-11 21:30:48
阅读次数:
246
链表的链接: 将第二条链表的所有内容链接到第一条链表之后, 其完整实现代码与解析如下://链表的链接
template
void MyList::concatenate(const MyList &list)
{
if (isEmpty())//如果自己的链表为空
{
first = list.first;
return ;
}
...
分类:
其他好文 时间:
2015-01-05 22:01:41
阅读次数:
158
2.4 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前。思路:将小于的结点还是保存在原来的链表中,将大于等于x的结点加入一个新的链表,最后将这两个链表链接起来。C++实现代码:#include#includeusing namespace std;struc...
分类:
其他好文 时间:
2014-12-03 22:52:41
阅读次数:
153
本文从源码角度分析了malloc/free在avr-libc下的具体实现。avr-libc的malloc/free使用了单链表链接的freelist作为管理chunk的“账簿”,同时采用了“最佳适配”策略——即若freelist有多个chunk可满足当前malloc(size)请求,将以“最佳的”(所有大于size的chunk中最小的)chunk响应。...
分类:
其他好文 时间:
2014-10-25 10:37:14
阅读次数:
328
上一篇博客《sqlite:多线程操作数据库“database is locked”解决方法》通过注册延时函数的方法来处理数据库被锁的问题。此方法固然能解决问题,但是在多个线程向数据库写入大量数据的情况下,延时会拖慢进度。想出方法二:1. 创建一个链表,链接如下格式的结构体,线程1,线程2,线程3.....
分类:
数据库 时间:
2014-10-16 21:10:23
阅读次数:
208