linux多线程
文章平均质量分 81
yang_chen_shi_wo
这个作者很懒,什么都没留下…
展开
-
Timing Wheel 时间轮算法 java实现
原文地址:http://blog.csdn.net/mindfloating/article/details/8033340最近自己在写一个网络服务程序时需要管理大量客户端连接的,其中每个客户端连接都需要管理它的 timeout 时间。通常连接的超时管理一般设置为30~60秒不等,并不需要太精确的时间控制。另外由于服务端管理着多达数万到数十万不等的连接数,因此我们没法为每个转载 2015-06-16 16:49:34 · 12710 阅读 · 2 评论 -
线程私有数据
原文地址:http://blog.chinaunix.net/uid-8917757-id-2450452.html1.为什么需要线程私有数据:原因一:有时候需要维护基于每个线程的数据,用线程ID作为索引。因为线程ID不能保证是小而连续的整数,所以不能简单的分配一个线程数据数组,用线程ID作为数组的索引。即使线程ID确实是小而连续的整数,可能还希望有一些额外的保护,以防止某个线程的数据和其转载 2015-08-19 16:57:38 · 420 阅读 · 0 评论 -
unix/linux下线程私有数据实现原理及使用方法
原文地址:点击打开链接复习以前做过的爬虫系统,在做防止死链时用到了线程的私有数据,那时候仅仅是会用,至于底层是怎么实现的以及为什么一个键可以对应不同线程的指还一知半解,今天又详细的看了下相关的资料,以做总结。 在维护每个线程的私有数据的时候,我们可能会想到分配一个保存线程数据的数组,用线程的ID作为数组的索引来实现访问,但是有一个问题是系统生成的线程ID不能保证是一个小而转载 2015-08-19 17:56:23 · 342 阅读 · 0 评论 -
《UNIX环境高级编程》笔记--线程的取消选项
原文地址:点击打开链接有两个线程并没有包含在pthread_attr_t机构中,他们是可取消状态和可取消类型,这两个属性影响着线程在响应pthread_cancel函数调用时所呈现的行为。可取消状态属性可以是PTHREAD_CANCEL_ENABLE和PTHREAD_CANCEL_DISABLE,线程可以通过调用pthread_setcancelstate修改它的可转载 2015-08-19 18:48:33 · 392 阅读 · 0 评论 -
gdb 多线程调试
原文地址:http://www.cnblogs.com/xuxm2007/archive/2011/04/01/2002162.htmlgdb 多线程调试http://hi.baidu.com/hcq11/blog/item/9f5bfc6e696209d680cb4a25.html http://hi.baidu.com/litto/blog/item/759389dd1转载 2015-08-17 15:09:14 · 205 阅读 · 0 评论 -
linux线程池设计讲解
linux高级编程综合应用:线程池 原文地址:http://blog.163.com/jimking_2010/blog/static/171601535201311113245917/线程池:在处理较复杂的任务的时候,可以采用多线程的方式。一般都是有一个任务,交给一个线程去处理。但是线程的创建需要一定的时间,且线程也不能无限制创建,那样CPU执行效率会更低。因此出现了线程池转载 2015-06-13 10:54:18 · 515 阅读 · 0 评论 -
线程知识总结
linux高级编程基础系列:线程和线程属性 原文地址:http://blog.163.com/jimking_2010/blog/static/1716015352013102104330579/线程可以解决进程中的问题:fork子进程存在的问题:1】开销大,内存映像要从父进程拷贝到子进程,所有的描述字要在子进程中复制等。尽管采用了写时复制技术,但总体来说还是太过昂贵转载 2015-06-12 10:26:38 · 412 阅读 · 0 评论 -
多线程通信的注意问题
在主线程和子线程通信时,经常采用每个子线程一个内存的方式进行父子线程的通信。这样做的原因就是防止父子线程竞争带来的问题。以下是实例:原创 2015-06-11 19:42:56 · 952 阅读 · 0 评论 -
高效定时器:时间轮和时间堆
游戏后台之高效定时器-时间轮原文地址:http://blog.csdn.net/soft2967/article/details/9274691高性能定时器定时器的结构有多种,比如链表式,最小堆,时间轮的 ,在不同应用场景下使用哪种需要考虑效率和复杂度这次我么那先先讲讲时间轮定时器,在linux内核里这种结构的定时器大量使用。1.升序链表定时器 时间轮定时器转载 2015-06-12 09:47:06 · 8419 阅读 · 0 评论 -
线程函数 pthread_detach()
在任何一个时间点上,线程石可结合的(joinable)或者是可分离的(detached)。一个可结合的线程能够被其他线程回收资源和杀死。在被其他线程回收之前,他的存储器资源(例如栈)是没有释放的。相反,一个分离的线程是不能被其他线程回收或杀死的。他的存储器资源在他终止时由系统自动释放。默认情况下系统被创建为可结合的,为了避免内存泄露,每个可结合线程都应该要么被其他线程显示回收,要么通过调用pt原创 2015-06-11 14:15:01 · 341 阅读 · 0 评论 -
多线程死锁调试小技巧
原文地址:http://blog.csdn.net/xhjcehust/article/details/45508253据说再高的高手在写多线程程序的时候都难确保不会产生死锁,死锁的调试也就成为一个比较常见的问题,假设有下面这样一个问题: 一个正在生产环境下运行的进程死锁了,或者你只是在跑一个程序,并没有在调试器里面打开它,然后发现没有响应,日志输出也停止了。由于你是一个有经转载 2015-07-01 22:17:26 · 304 阅读 · 0 评论 -
linux进程间同步和共享内存
进程之间上锁:文件记录锁(用于同步进程对文件的访问,这个锁可以设置为阻塞的,进而也可以用作进程间同步手段),进程间通信的信号量,线程间通信的互斥锁变量放在所有进程的共享内存区,设置属性为shared。线程的互斥锁变量时间最快,然后是信号量,文件记录锁最慢。虽然记录锁要比信号量锁慢,但如果只需要锁一个资源(例如共享存储段)并且不需要信号量锁的花哨功能,则宁可使用记录锁。因为简单,且进程终止时系统会处原创 2015-08-20 14:43:36 · 1296 阅读 · 0 评论