自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 使用epoll编写服务器

epoll是公认的linux2.6下性能最好的多路I/O就绪通知方法。epoll有epoll_create,epoll_ctl,epoll_wait三个系统调用。1.int epoll_create(int size):创建一个epoll句柄。当创建好句柄后,他会占用一个fd的值,所以当使用完epoll后一定要调用close将其关闭。2.int epoll_ctl(int epfd,i

2016-09-26 22:54:17 2185

原创 使用select编写服务器

io多路复用是通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般都是读就绪或者写就绪),就能通知应用程序进行相应的读写操作。select函数作为io多路复用的机制,第一个参数nfds是fd_set集合中最大描述符值+1,fdset是一个位数组,每一位代表其对应的描述符是否需要被检查。第二三四参数表示需要关注读、写、错误时间的文件描述符位数组,这些参数既是输入型参数也是输出型参数,可能会被内

2016-09-24 23:41:16 1126

原创 IP数据报的分片与重组

IP数据报格式:在IP数据报头中有三个字段与数据报的分片与重组有很大的关系,分别是标识符、标志和片偏移量。1.其中标志占3位,该字段目前只有后两位有意义。其中,最低位记为MF(More Fragment),用于把数据报最后一片与前面其它各片区分开来。MF = 1代表片未完,即钙片不是原始数据报的最后一片;MF = 0表示钙片是原始数据报的最后一片。次低位DF(Don't Fra

2016-09-20 22:55:18 13624 2

转载 队列实现生产者消费者模型

生产者/消费者问题是并发处理中遇到的最常见的问题,通常可描述如下:有一个或多个生产者生产某种类型的数据(记录,字符),并放置在缓冲区中;有一个消费者从缓冲区中取数据,每次取一项;系统保证避免对缓冲区的重复操作,也就是说,在任何时候只有一个主体(生产者或消费者)可以访问缓冲区。问题是要确保这样的情况,当缓冲区已满时,生产者不会继续向其中添加数据;当缓冲区为空时,消费者不会从中移走数据。若缓冲区是

2016-09-19 12:29:47 893

原创 生产者消费者问题

生产者/消费者问题是并发处理中遇到的最常见的问题,通常可描述如下:有一个或多个生产者生产某种类型的数据(记录,字符),并放置在缓冲区中;有一个消费者从缓冲区中取数据,每次取一项;系统保证避免对缓冲区的重复操作,也就是说,在任何时候只有一个主体(生产者或消费者)可以访问缓冲区。问题是要确保这样的情况,当缓冲区已满时,生产者不会继续向其中添加数据;当缓冲区为空时,消费者不会从中移走数据。假设缓冲区

2016-09-16 15:26:55 419

原创 linux中的死锁

死锁:是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于“死锁”状态或系统产生了死锁,这些永远在互相等待的进程(线程)称为死锁进程(线程)。由于资源占用时互斥的,当某个进程提出申请资源后,使得有关进程(线程)在无外力协助下,永远分配不到必备的资源而无法运行,这就产生了一种特殊现象死锁。一种交叉等待死锁的情形,此

2016-09-10 20:46:23 1017

原创 linux中的crontab命令

在linux中,使用者可以自己设置计划任务,所以系统提供了使用者控制计划任务的命令:crontab。1.在用户建立的crontab文件中,每行代表一个任务,每行的每隔字段代表一项设置,共分为6个字段,前五个设置时间,最后一个设置命令;Min:分钟,0-59Hour:小时,0-23Day:日期,0-31Month:月,1-12Week:周,0-7可以使用以下特殊字

2016-09-10 00:16:13 245

转载 linux中可重入函数和线程安全

一个可重入函数简单来说是可以被中断的函数,也就是说,可以在这个函数运行的任何时候中断它,转入os调度下去执行另一段代码,而返回控制时不会出现什么错误。可以被信号控制器安全调用的函数称为“异步信号安全函数”。可重入函数与异步信号安全函数时一个概念。线程安全:一个函数被称为线程安全的,当且仅当被多个并发线程反复调用时,他会产生一个正确的结果。可重入性:有一类重要的线程安全函数,叫做

2016-09-07 22:55:16 371

原创 linux进程间通信(命名管道)

在处理进程间通信的问题时,匿名管道只能在有亲缘关系的进程中进行通信。如何做到在任意两个进程之间通信,这就要用到命名管道。命名管道也被称为fifo文件,它是一种特殊类型的文件,在文件系统中以文件的形式存在,它的行为和匿名管道类似。可以使用mkfifo函数来创建一个命名管道。int mkfifo(const char* filename,mode_t mode);filename指定了文件

2016-09-02 21:22:34 290

原创 linux中使用匿名管道实现进程间通信

管道是最基本的IPC机制,由pipe函数创建。在调用pipe函数时,会在内存中创建一个缓冲区,称为管道。这个管道有两个端,一个读端和一个写端。通过filedes参数传给用户程序的两个文件描述符,filedes[0]指向管道的读端,filedes[1]指向管道的写端。在linux中一切皆文件,管道可以看成是一个文件,可以通过read和write函数对管道进行读写操作。进程间通信时如何通过匿名管道

2016-09-02 19:18:25 1320

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除