读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从 ...
分类:
其他好文 时间:
2018-01-21 01:08:05
阅读次数:
249
最近看到有人拿阻塞和同步进行比较,我就呵呵了,下面分享我的理解: 阻塞/非阻塞考察的是调用API时,若资源未准备好,API是否会立即返回(非阻塞),或将调用线程阻塞直到请求的资源就绪(阻塞) 比如read函数,如果在文件描述符上没有数据可读,read调用默认行为是block调用线程,直到资源就绪,r ...
分类:
其他好文 时间:
2018-01-20 19:01:16
阅读次数:
131
libev最大的特点是采用了轮询文件描述符(select,poll,epoll,iocp,kqueue)的方式来代替线程调度和切换,省去了线程切换,效率很高。 用小顶堆而不是链表来管理定时器,有以下优势: 1、容器中的元素实现有序排列(当然链表也能做有序排列,但性能不行,参见后面几点),这样在轮询时 ...
分类:
其他好文 时间:
2018-01-18 20:34:20
阅读次数:
194
什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - Dece ...
分类:
编程语言 时间:
2018-01-16 13:57:22
阅读次数:
178
I/O编程 读写文件时最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。读写文件前,我们必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供 ...
分类:
编程语言 时间:
2018-01-15 22:25:33
阅读次数:
143
I/O编程 读写文件时最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。读写文件前,我们必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供 ...
分类:
编程语言 时间:
2018-01-15 22:22:50
阅读次数:
177
使用异步io实现只使用单进程,单线程的socket。处理多个用户的请求。 先简单说明一下select异步io工作原理: select 是一个跨平台的异步io模型,由于我们计算机的硬盘速度,远远低于我们内存的速度,因此如果同时有多个用户来请求数据时候,io效率就会变得更慢。 而select 是一直不断 ...
分类:
编程语言 时间:
2018-01-13 17:00:25
阅读次数:
198
当程序进行IO时,如果数据尚未准备好,那么IO将处于阻塞状态。当某个进程有多个打开的文件,比如socket,那么其后的所有准备好读写的文件将受到阻塞的影响而不能操作。不借助线程,单一进程无法在同一时间服务多个文件描述符。非阻挡式IO可以作为一个解决方案,但是效率并不高。首先进程需要不断发IO请求,其次,如果程序可以休眠,让出CPU将提高效率。多任务式IO是在其中任何一个文件描述符就绪时收到通知,此
分类:
系统相关 时间:
2018-01-12 13:26:42
阅读次数:
210
说明:不一定有效,需要不断尝试 一、lsof 文件刚刚被删除,想要恢复,先尝试lsof. lsof |grep data.file1 cp /proc/xxx/xxx/xx /dir/data.file1 如果lsof不能看到文件,那么就需要使用恢复软件进行恢复。 要做的第一件事是立刻卸载被误删除文 ...
分类:
系统相关 时间:
2018-01-12 11:18:33
阅读次数:
4981
man page: http://man7.org/linux/man-pages/man2/poll.2.html poll 是一种多路复用的IO机制。使用 poll 可以监听多个文件描述符,一但某个文件描述符就绪(一般是读就绪或者写就绪),能够通知程序进行响应的读写操作。 poll 本质是一种同 ...
分类:
其他好文 时间:
2018-01-10 20:15:15
阅读次数:
184