![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
互联网-服务器编程
爱很遥远
事有其道
展开
-
《Linux高性能服务器编程》学习笔记——第八章 高性能服务器程序框架
IO处理单元。四种IO模型和两种高效事件处理模式。逻辑单元。两种高效并发模式。存储单元。(暂不讨论)IO模型:阻塞IO非阻塞IOIO复用//程序阻塞于IO复用系统调用,但可同时监听多个IO事件。SIGIO信号//信号触发读写就绪事件,用户程序执行读写操作,程序没有阻塞阶段异步IO//内核执行读写操作并触发读写完成事件。程序没有阻塞阶段两种高效的事原创 2015-01-20 21:09:23 · 578 阅读 · 0 评论 -
《Linux高性能服务器编程》学习笔记——第六章 高级I/O函数
Linux高级I/O函数在特定条件下有相当优秀的性能。 1、pipe函数pipe函数用于创建一个管道,实现进程间的通信:#include int pipe(int fd[2]);函数成功返回0,并将打开的一对文件描述符填入参数数组。失败返回-1并设置errno。通过pipe函数创建的文件描述符fd[0]和fd[1]分别构成管道的两端,往fd[1]写入的数据可以从原创 2015-01-18 19:12:26 · 555 阅读 · 0 评论 -
《Linux高性能服务器编程》学习笔记——第七章 Linux服务器程序规范
Linux高性能服务器编程 第七章(Linu服务器程序规范)2014-08-18 20:36:01 分类: 网络与安全7 Linux服务器程序规范原创 2015-01-19 20:45:48 · 462 阅读 · 0 评论 -
Linux中epoll模型学习
epoll是Linux2.6及以后版本中的一种IO复用技术。可以非常高效的处理数以百万计的socket句柄,今天学习一下它为何能高速处理这么多并发连接。学习epoll之前,先介绍一下Linux中其它处理并发的模型的缺点,包括PPC/TPC,select IO复用,poll IO复用。IO复用就是同时监听多个描述符。 一、常用模型的缺点1、 PPC/TPC模型Process PerC原创 2015-04-21 21:14:57 · 549 阅读 · 0 评论 -
libevent框架初步学习
libevent是一种开源的轻量级的优秀I/O框架库,它可以跨平台,可以统一处理I/O、信号和定时事件,可以使用不同的I/O复用方式,较新版本使用libevent_pthreads库对并发编程提供支持。高性能分布式内存对象缓存软件memcached就使用了该IO库。这些天通过《Linux高性能服务器编程》和《libevent源码深度剖析》学习了libevent的一些基本概念和原理。libeve原创 2015-05-06 22:10:49 · 692 阅读 · 0 评论 -
memcached缓存技术简介
memcached是一个高性能的分布式的内存对象缓存系统,使用这个缓存项目可以分担数据库的压力构建大负载的网站。通过在内存里维护一个统一的巨大的hash表,并根据一套算法维护数据操作,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。它使用非阻塞的网络IO可以应对任意多个连接。一般来讲,从内存获取数原创 2015-05-14 21:48:41 · 380 阅读 · 0 评论 -
共享内存相关系统调用
进程间通信的一种方式就是使用共享内存,Linux下与共享内存相关的系统调用是编程的基础,根据项目中的使用情况,罗列如下。key_t ftok(constchar * pathname, int id)系统建立IPC通信(消息队列、信号量、共享内存)时必须指定一个ID值。ftok函数根据一个文件和子序号生成这样一个键值,唯一标识此资源。int shmget(key_tkey, size_原创 2016-03-27 21:40:26 · 1053 阅读 · 0 评论 -
zookeeper学习
这段时间学习了一下zookeeper。主要看了《zookeeper分布式过程协同技术详解》(英文版)和《从PAXOS到ZOOKEEPER分布式一致性原理与实践》两本书,以及zookeeper官方文档,输出了几个文档和PPT。内容就不上传了,记录一下。原创 2017-01-08 22:56:22 · 175 阅读 · 0 评论 -
线程的join和detach
http://www.cnblogs.com/mydomain/archive/2011/08/14/2138454.htm在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时转载 2017-04-25 10:32:29 · 382 阅读 · 0 评论