
线程
西门仙忍
从事数据库领域8年
展开
-
多线程 or 多进程
在Unix上编程采用多线程还是多进程的争执由来已久,这种争执最常见到在C/S通讯中服务端并发技术 的选型上,比如WEB服务器技术中,Apache是采用多进程的(perfork模式,每客户连接对应一个进程,每进程中只存在唯一一个执行线程), Java的Web容器Tomcat、Websphere等都是多线程的(每客户连接对应一个线程,所有线程都在一个进程中)。从Unix发展历史看,伴随着Unix的转载 2015-06-25 18:31:33 · 628 阅读 · 0 评论 -
atomic_inc 原子操作
atomic_inc(&v)对变量v用锁定总线的单指令进行不可分解的"原子"级增量操作,避免v的值由于中断或多处理器同时操作造成不确定状态。原子操作 所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际是使用了物理学里的物质微粒的概念。 原子操作需要硬件的支持,因此是架构相转载 2015-07-06 16:42:25 · 2980 阅读 · 0 评论 -
Multithreaded simple data type access and atomic variables
Table of contentsIntroductionHow atomic variables workAtomic variables size limitationsUse casesThe real thing…Time to see some actionPrecautionsConslusionIntroductionBACK TO TOCIn this article I woul转载 2015-07-20 15:36:25 · 622 阅读 · 1 评论 -
unix/linux下线程私有数据实现原理及使用方法
复习以前做过的爬虫系统,在做防止死链时用到了线程的私有数据,那时候仅仅是会用,至于底层是怎么实现的以及为什么一个键可以对应不同线程的指还一知半解,今天又详细的看了下相关的资料,以做总结。 在维护每个线程的私有数据的时候,我们可能会想到分配一个保存线程数据的数组,用线程的ID作为数组的索引来实现访问,但是有一个问题是系统生成的线程ID不能保证是一个小而连续的整数,并且用数组实现的时转载 2015-07-22 18:51:39 · 410 阅读 · 0 评论 -
Nginx架构
nginx在启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。 当然nginx也是支持多线程的方式的,只是我们主流的方式还是多进程的方式,也是nginx的默认方式。 master进程主要用来管理worker进程,包含:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当wor转载 2015-11-13 16:40:52 · 1594 阅读 · 0 评论 -
CAS原子操作实现无锁及性能分析
CAS原子操作实现无锁及性能分析 Author:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.youkuaiyun.com/chen19870707Date:Nov 13th, 2014最近在研究nginx的自旋锁的时候,又见到了GCC CAS原子操作,于是决定动手分析下CAS实现的无转载 2015-11-26 12:22:31 · 602 阅读 · 0 评论