
APUE
xianjian_x
kxapiss@163.com
展开
-
一个Linux下C线程池的实现
什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。 下面是Linux系统下用C语言创建的一个线程池。线程池会维护一个任务链表(每个CThread_worker结构就是一个任务)。转载 2014-03-03 11:28:36 · 1580 阅读 · 0 评论 -
一个 pthread_cancel 引起的线程死锁
这篇文章主要从一个 Linux 下一个 pthread_cancel 函数引起的多线程死锁小例子出发来说明 Linux 系统对 POSIX 线程取消点的实现方式,以及如何避免因此产生的线程死锁。一个 pthread_cancel 引起的线程死锁小例子 取消点Cancellation Point 取消类型Cancellation Type Linux 的取消点实现 对示例函数进入死锁的解释 如何避免因转载 2015-08-28 16:27:23 · 2506 阅读 · 0 评论 -
线程终止资源清理方式
Posix线程终止的两种情况 线程终止时的清理 线程终止的同步及其返回值 关于pthread_exit 和return 1.Posix线程终止的两种情况。 包括正常终止和非正常终止。线程主动调用pthread_exit 或者从线程函数中return都将使线程正常退出,这是可预见的退出方式;非正常终止是线程在其他线程的干预下 pthread_cancel ,或者由于自身运行出错(比如访问非法地址)而转载 2015-08-18 18:21:02 · 3205 阅读 · 0 评论 -
Linux CPU affinity
一.CPU affinity linux中将某个进程或者线程绑定到特定的一个或者多个cpu上执行。 二.为什么需要CPU affinity cache性能的提升,多个进程不断交替地在某个cpu上执行,导致缓存无效。 多线程程序运行于某个cpu,每个线程轮流占据cpu资源,共享cache,导致cache性能下降。 专有程序的实时性,当把专有进程原创 2013-01-25 20:25:02 · 4283 阅读 · 5 评论