Linux系统编程
文章平均质量分 72
aka_xingwenpeng
秋天是个减肥的好季节
展开
-
多线程和多进程的选择(转载)
关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。经常在网络上看到有的XDJM问“多进程好还是多线程好?”、“Linux下用多进程还是多线程?”等等期望一劳永逸的问题,我只能说:没有最好,只有更好。根据实际情况来判断,哪个更加合适就是哪个好。我们按照多个不同的维度,来看看多线程和多进程的对比(注:因为是感性的比较,因此都是相对的,不是说一个好得转载 2010-10-12 13:11:00 · 354 阅读 · 0 评论 -
select,poll,epoll比较
select,poll,epoll简介selectselect本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:1 单个进程可监视的fd数量被限制2 需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时复制开销大3 对socket进行扫描时是线性扫描转载 2013-09-21 17:40:38 · 479 阅读 · 0 评论 -
netstat命令
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行netstat后,其输出结果为Active Internet connections (w/o servers)Proto Recv-Q S转载 2013-09-17 14:23:21 · 579 阅读 · 0 评论 -
pthread_mutex互斥锁多进程共享
#include #include #include #include #include #include #include typedef struct _FOO{int nCount;int nData;}FOO,*PFOO;int main(int argc,char *argv[]){FOO *ptr;pid_t转载 2013-09-14 10:23:54 · 1192 阅读 · 1 评论 -
linux c++ 招聘条件
多看招聘信息可以明确学习方向。 要求:1、掌握Linux API使用,精通C/C++语言,并熟练使用STL,熟悉各种设计模式 ;2、掌握Linux C/C++开发环境,熟练掌握gcc, gdb,cvs,精通Linux下的多线程编程 ;3、熟练掌握网络编程的基本模型和方法,有实际项目的开发经验,熟悉tcp/ip网络协议族;4、了解现有主流分布式架构,有分布式大型系统架转载 2013-09-14 09:38:22 · 818 阅读 · 0 评论 -
多进程读写锁
多进程编程的核心技术是进程间的同步——通信与互斥访问一、进程间的通信1、管道2、System V信号量3、共享内存4、消息队列5、信号 6、套接字二、进程间对资源的互斥访问条件变量信号量读写锁(记录锁)自旋锁原子锁(顺序锁)记录锁:int fcntl(int转载 2013-09-14 09:29:19 · 8882 阅读 · 1 评论 -
进程和线程
关于Linux的进程和线程博客分类: linux 什么是进程直观点说,保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己的地址空间,有自己的堆,上级挂靠单位是操作系统。操作系统会以进程为单位,分配系统资源,所以我们也说,进程是资源分配的最小单位。什么是线程线程存在与进程当中,是操作系统调度执行的最小单位。说通转载 2013-09-14 15:07:14 · 685 阅读 · 0 评论 -
Linux 套接字编程中的 5 个隐患
《Linux 套接字编程中的 5 个隐患》文章转自:http://www.ibm.com/developerworks/cn/linux/l-sockpit/在 4.2 BSD UNIX® 操作系统中首次引入,Sockets API 现在是任何操作系统的标准特性。事实上,很难找到一种不支持 Sockets API 的现代语言。该 API 相当简单,但新的开发人员转载 2013-09-14 09:33:56 · 611 阅读 · 0 评论 -
信号与线程
类UNIX信号以前是专为进程设计的,它比线程的出现早了很多年。当线程模型出现后,专家们试图也在线程上实现信号,这导致了一个问题:如果要在线程模型中保持原来在进程中信号语意不变,是相当困难的。避免信号和线程一起使用是明智的选择。但是,将他们分开又是不可能或不实际的。只要有可能的话,仅仅在主线程内使用pthread_sigmask()来屏蔽信号,然后同步地在专用线程中使用sigwait()来处转载 2013-09-04 11:17:02 · 858 阅读 · 0 评论 -
信号
Linux 多线程应用中如何编写安全的信号处理函数http://hi.baidu.com/yelangdefendou/blog/item/827984efd3af7cd9b21cb1df.htmlSignal HandlingUse reentrant functions for safer signal handlinglinux信号种类1、可靠信号和不可靠信号转载 2013-09-04 12:01:13 · 575 阅读 · 0 评论 -
线程注意事项
Unix跟Windows等那些”对于开发者易于使用”的OS比起来,在信号和线程的利用方面有诸多的限制。但是即使不知道这些知识就做构架设计和实现的情况也随处可见。这个就是那些经常不能再现的bug的温床吧。因此,我想分成几回来写一些准则来防止陷入到这些圈套里。准则1:不依赖于信号收发的设计·给其他进程以及自己发送异步信号并改变处理流程的设计不要做 异步信号是值用kill转载 2013-09-04 14:24:59 · 1790 阅读 · 0 评论 -
异步信号安全和线程安全
异步信号安全和线程安全 2011-12-24 20:10:54| 分类: Linux|字号 订阅问题源自于apue中stevens老先生有关线程安全函数的介绍,stevens有曰:如果一个函数对于多线程来说是重入的,则说这个函数是线程安全的,但这并不能说明对信号处理程序来说也是重入的。也就是说信号安全重入函数要求要比线程安全更加严格。但是,我想知道为转载 2013-09-04 12:07:25 · 680 阅读 · 0 评论 -
linux网页抓取-2
五、解析网页源代码,得到所需要信息解析html并不复杂,只是有点麻烦而已。因为页面不可能全部读入内存在解析,只有分开读。分开读就必须要考虑需要查找的标签有可能只读到一部分这种情况。如读1024字节数据,我需要在里面找,碰巧的是,1024字节数据最后几位是解析出来的文章有遗漏。需要解析的标签如下:[cpp] view plaincopyprint?#defin转载 2013-04-09 16:20:44 · 662 阅读 · 0 评论 -
linux网页抓取-1
最近一直在学习stevens的unix网络编程,对于网络通信有了一定的认识,所以也想练练手。聊天程序之前用winsock做过,这次不想做重复的。之前看到一哥们写过windows下抓取猫扑的帖子,我觉得抓页面也是一个不错想法。我也喜欢逛猫扑,有时候也去追追里面写的文章,猫扑帖子少了一个很重要的功能,就是只看楼主的帖子。猫扑水人很多,容易把楼主的帖子淹没在大海里面。 查看了一下猫扑帖转载 2013-04-09 16:19:46 · 573 阅读 · 0 评论 -
Emacs入门——基本指法(一)
1.进EMACS 请打C-h t (C-h代表Ctrl + h键;Meta键某些终端上没有,有些则是Alt键, 不管怎样,ESC前缀键总是等价于M-) 花一个小时练一编,习惯了就好. 基本指法: Previous line, C-p page转载 2013-03-04 22:44:07 · 1011 阅读 · 0 评论 -
linux socket和epoll使用心得
nt nRecvBuf=32*1024;//设置为32Ksetsockopt(s,SOL_SOCKET,SO_RCVBUF,(const char*)&nRecvBuf,sizeof(int));1、通过上面语句可以简单设置缓冲区大小,测试证明:跟epoll结合的时候只有当单次发送的数据全被从缓冲区读完毕之后才会再次被触发,多次发送数据如果没有读取完毕当缓冲区未满的时候数据不会丢失,会累加转载 2013-09-26 15:47:12 · 687 阅读 · 0 评论