![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序设计
文章平均质量分 60
wallace0611
从最简单的博客写起
展开
-
linux异步I/O——AIO
Linux的I/O机制经历了一下几个阶段的演进:1. 同步阻塞I/O: 用户进程进行I/O操作,一直阻塞到I/O操作完成为止。2. 同步非阻塞I/O: 用户程序可以通过设置文件描述符的属性O_NONBLOCK,I/O操作可以立即返回,但是并不保证I/O操作成功。3. 异步事件阻塞I/O: 用户进程可以对I/O事件进行阻塞,但是I/O操作并不阻塞。通过select/poll/epoll等函数调用来达到此目的。4. 异步事件非阻塞I/O: 也叫做异步I/O(AIO),用户程序可以通过向内核发出I原创 2010-12-03 15:01:00 · 770 阅读 · 0 评论 -
POSIX线程:线程私有数据
概念及作用 线程私有数据(thread-specify data,TSD)类似于全局变量,可以跨函数使用,区别是TSD是线程私有的。创建和注销int pthread_key_create(pthread_key_t *key, void (*destr_func)(void *)) key,函数从TSD池中分配一项,所创建的是所有线程都能访问的,但各个线程可以根据自己需要往key中写填不同的值,相当于提供了一个同名但不同值的全局变量。 destr,线程退出时,调用destr_func函数,释放原创 2010-10-22 19:29:00 · 429 阅读 · 0 评论 -
和进程相关联的用户信息(读unix高级编程笔记)
<br /> 和每个进程相关联的用户id和组id:<br /> <br /> 实际用户id<br /> 实际组id 我们实际上是谁<br /> 有效用户id<br /> 有效组id<br /> 添加组id 用于文件存取许可权检查<br /> 保存的set-user-id<br /> 保存的set-group-id 由exec函数保存<br /> <br原创 2010-11-04 16:22:00 · 655 阅读 · 0 评论 -
网络io模型:epoll
epoll原理 在linux网络编程中,很长时间使用select做事件触发。select会随着监听fd的数目的增长而降低效率,因为在实现中,它是采用轮询的方式处理的,轮询的fd数目越多,自然耗时就越多。对于IM服务器要支持上万个链接,就显得力不从心了。而且fd支持数目是有限的,在linux/posix/_types.h头文件中,有这样的声明:#defind __FD_SETSIZE 1024.epoll则没有这样的限制,epoll支持的最大链接数是最大可打开的文件的数目。epoll只对活跃的socket进转载 2010-11-05 15:37:00 · 1359 阅读 · 0 评论 -
epoll 经验谈
1、首先需要一个内存池,目的在于:<br />·减少频繁的分配和释放,提高性能的同时,还能避免内存碎片的问题;<br />·能够存储变长的数据,不要很傻瓜地只能预分配一个最大长度;<br />·基于SLAB算法实现内存池是一个好的思路:分配不同大小的多个块,请求时返回大于请求长度的最小块即可,对于容器而言,处理固定块的分配和回收,相当容易实现。当然,还要记得需要设计成线程安全的,自旋锁比较好,使用读写自旋锁就更好了。<br />·分配内容的增长管理是一个问题,比如第一次需要1KB空间,随着数据源源不断的写入转载 2010-11-13 14:11:00 · 2297 阅读 · 0 评论 -
Perl函数pack/unpack(二进制读写)
函数名pack调用语法formatstr = pack(packformat, list);解说把一个列表或数组以在实际机器存贮格式或C等编程语言使用的格式转化(包装)到一个简单变量中。参数packformat包含一个或多个格式字符,列表中每个元素对应一个,各格式字符间可用空格或tab隔开,因为pack忽略空格。<br /> 除了格式a、A和@外,重复使用一种格式多次可在其后加个整数,如:<br /> $twoints = pack转载 2011-02-25 15:53:00 · 2959 阅读 · 0 评论 -
关于unordered_map
利用unordered_map代替hash_map 实验环境 操作系统 fedora9 编译器版本 gcc4.3 实验方式 各种map使用插入和查找,比较速度和相关性能代码 参考代码 下面测试说明了速度之间的比较:map类型插入速度插入和查找速度转载 2011-06-22 18:29:00 · 2996 阅读 · 2 评论