09 2018 档案

摘要:前面介绍了select处理,这一章继续介绍另外一种I/O多路服用的机制:epoll。来比较下两种机制的不同点。 select: 调用过程如下: (1)使用copy_from_user从用户空间拷贝fd_set到内核空间 (2)注册回调函数__pollwait (3)遍历所有fd,调用其对应的poll 阅读全文
posted @ 2018-09-16 15:20 red_leaf_412 阅读(542) 评论(0) 推荐(0) 编辑
摘要:一般我们在写socet程序的时候调用的accept,recv等操作都是阻塞型的。意思就是如果我们一直收不到数据那么则会被阻塞。所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回 可是使用Select就可以完 阅读全文
posted @ 2018-09-08 22:55 red_leaf_412 阅读(337) 评论(0) 推荐(0) 编辑
摘要:记录锁的功能:当一个进程正在读或修改文件的某个部分是,它可以阻止其他进程修改同一文件区。对于这个功能阐述我认为有三点要解释的: 记录锁不仅仅可以用来同步不同进程对同一文件的操作,还可以通过对同一文件加记录锁,来同步不同进程对某一共享资源的访问,如共享内存,I/O设备。 对于劝告性上锁,当一个进程通过 阅读全文
posted @ 2018-09-02 22:13 red_leaf_412 阅读(335) 评论(0) 推荐(0) 编辑
摘要:定义一个属性可由用户修改的装饰器: 在前面的介绍中使用装饰器来包装函数,这一章来介绍下如何让用户调整装饰器的属性。 首先来看下代码: from functools import wraps,partial import logging def attach_wrapper(obj,func=None 阅读全文
posted @ 2018-09-02 15:31 red_leaf_412 阅读(337) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示