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