摘要: http://hi.baidu.com/lingiloveyou/blog/item/21e57cf3322a6b40342accc7.html什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。 下面是Linux系统下用C语言创建的一个线程池。线程池会维护一个任务链表(每个CThread_worker结构就是一个任务)。 pool_init()函数预先创建好max_thread_num个线程,每个线 阅读全文
posted @ 2012-01-06 18:40 balaamwe 阅读(800) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/nowdoit/article/details/6145340很多事物的由来都是有理由的,现在看似晦涩难解的符号token,背后都是有一段历史!1. fp()只是一种简写方式fp()是一个函数指针,所以*fp就是该指针指向的函数,所以(*fp)()就是调用该函数的方式。也就是 (*fp)() 和 fp() 是同一个意思;ANSI C 标准规定允许程序员将上式简写成 fp(),但是要记住,这只是一种简写方式罢了!这样的话,在查看定义比较复杂的函数时候,就能容易理解了!比如(*(void(*)()0)()。2. 数组a[i]的由来.首先我们定义一个数组,a 阅读全文
posted @ 2012-01-06 18:06 balaamwe 阅读(690) 评论(0) 推荐(0) 编辑
摘要: http://bbs.sjtu.edu.cn/bbscon,board,C,file,M.1290521786.A.htmlhttp://topic.csdn.net/u/20091123/11/0c03d2e2-0655-4634-8287-0e2315d889fc.html 一直以来想把2005年写的《再再论指针》修改一下,因为经过了这么多年,对C/C++的理解与05年相比又有了一些进展。但公司的工作一直很忙,没有时间进行修改工作。直到10月初的长假,才开始。从放假到现在过去两个月了,一直利用空闲时间断断续续地修改,共写了两万字,十章节。偶不是作家,两万字对偶来说已经是极限中的极限了,没. 阅读全文
posted @ 2012-01-06 18:05 balaamwe 阅读(630) 评论(0) 推荐(0) 编辑
摘要: http://www.yovae.com/blog/linux-gcc%E7%BC%96%E8%AF%91%E9%94%99%E8%AF%AF.htmllinux gcc编译错误2011年09月12日⁄c/c++,操作系统⁄暂无评论linux系统下的c编程与windows有所不同,如果你在用gcc编译代码的时候提示‘for’ loop initial declarations are only allowed in C99 mode,可能就是因为你在loop循环比如for中使用未预先定义的变量,比如:for(int i=0;i<10;i++){}这种写法在vc里是没有错的,而子gcc就会 阅读全文
posted @ 2012-01-06 17:41 balaamwe 阅读(350) 评论(0) 推荐(0) 编辑
摘要: http://blog.chinaunix.net/space.php?uid=7907749&do=blog&id=2037213dlmalloc解析连载完结【总】(2009-05-27 17:26)分类:dlmalloc解析目录1.本文档介绍2.边界标记法3.分箱式内存管理4.核心结构体malloc_state5.内存分配相关函数5.1函数dlmalloc5.2函数tmalloc_small5.3函数tmalloc_large5.4函数sys_alloc5.5函数mmap_alloc6.内存回收相关函数6.1函数dlfree6.2函数sys_trim7.本文档声明1.本文档 阅读全文
posted @ 2012-01-06 15:23 balaamwe 阅读(599) 评论(0) 推荐(0) 编辑
摘要: http://3xin2yi.info/wwwroot/tech/doku.php/tech:system:memoryleak内存泄露是指在程序运行过程中,动态申请了部分内存空间,却没有在使用完毕后将其释放,结果导致该内存空间无法被再次使用。内存泄露是使用C或C++编程时易犯的错误之一,严重的内存泄露常常表现为:程序运行时间的越长,占用的内存越多,最终导致系统内存枯竭。如以下代码:int *dup_buffer(int* buffer, int size){ int *p; p = (int *) malloc(size*sizeof(int)); if (p !=0) ... 阅读全文
posted @ 2012-01-06 15:19 balaamwe 阅读(741) 评论(0) 推荐(0) 编辑
摘要: http://bbs.byr.cn/pc/pccon.php?id=315&nid=68136写程序时用malloc竟然出现段错误,而且明显那块没有用错,肯定是别的地方有内存泄漏的问题,导致最后内存泄漏了。需要好好查一查原因了。但程序中很多地方都用来malloc,内存全是随便用的,要改起来估计十分麻烦。。。。下面找了点malloc与free的介绍,先看下,然后赶紧改代码。在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多, 阅读全文
posted @ 2012-01-06 14:26 balaamwe 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 这个数据结构是这样的:structhostent {const char*h_name;// official name of hostchar**h_aliases;// alias listshorth_addrtype;// host address typeshorth_length;// length of addresschar**h_addr_list;// list of addresses from name server#defineh_addrh_addr_list[0]// address, for backward compatiblity};typedef uint 阅读全文
posted @ 2012-01-06 00:35 balaamwe 阅读(6485) 评论(0) 推荐(3) 编辑