linux 编程
madaoheng
这个作者很懒,什么都没留下…
展开
-
Linux平台下线程池的原理及实现
什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。 下面是Linux系统下用C语言创建的一个线程池。线程池会维护一个任务链表(每个CThread_worker结构就是一个任务)。转载 2013-07-17 17:57:46 · 413 阅读 · 0 评论 -
线程池原理分析
一.什么是线程池?线程池就是以一个或多个线程[循环执行]多个应用逻辑的线程集合.注意这里用了线程集合的概念是我生造的,目的是为了区分执行一批应用逻辑的多个线程和线程组的区别.关于线程组的概念请参阅基础部分.一般而言,线程池有以下几个部分:1.完成主要任务的一个或多个线程.2.用于调度管理的管理线程.3.要求执行的任务队列.那么如果一个线程循环执行一段代码转载 2013-07-17 17:53:01 · 448 阅读 · 0 评论 -
函数可重入性及编写规范
一、可重入函数1)什么是可重入性?可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要么在使用全局变量时保护自己的数据。转载 2013-07-18 10:20:41 · 500 阅读 · 0 评论 -
指针与引用
1.指针占内存空间,引用不占,只是给一块内存空间取别名2.引用定义时必须初始化,指针不必3.引用指向一块内存区域则不能指向另一块内存,指针可以4.没有空引用,有指向空的指针原创 2013-07-18 21:58:37 · 406 阅读 · 0 评论 -
linux make讲解
三、终于开始make了 make 是个命令,先谈一下,为什么要make? 首先的理由就是,你可以将前面很多gcc的命令行,汇总起来,并且一次确认,多个命令自动运行。我相信很多人说我在忽悠。这就是个“批处理”,就是加上复杂的变量替换,条件执行,也就是个脚本。没错,make首先就是个脚本分析执行的工作。 但make有优势的地方在于依赖的检查。什么是依赖,初学者看GN转载 2013-12-08 15:38:14 · 777 阅读 · 0 评论 -
Linux编译多个文件
Linux 内核和许多其他自由软件以及开放源码应用程序都是用 C 语言编写并使用 GCC 编译的。 编译C++程序: -c 只编译不连接 g++ file1 -c -o file1.o g++ file2 -c -o file2.o g++ file1.o file.o -o exec g++ -c a.cpp 编译转载 2013-12-02 19:59:15 · 694 阅读 · 0 评论 -
linux下的daemon进程
#include int daemon(int nochdir,int noclose) 在创建精灵进程的时候,往往需要将精灵进程的工作目录修改为"/"根目录 并且将标准输入,输出和错误输出重定向到/dev/null daemon的作用就是当参数nochdir为0时,将根目录修改为工作目录 noclose为0时,做输入,输出以及错误输出重定向到/dev/null转载 2013-12-20 14:33:22 · 621 阅读 · 0 评论