传统的IO 流都是阻塞式的。也就是说,当一个线程调用read() 或write() 时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务。因此,在完成网络通信进行IO 操作时,由于线程会阻塞,所以服务器端必须为每个客户端都提供一个独立的线程进行处理,当服务器端需要处理大量客户... ...
分类:
编程语言 时间:
2018-06-02 00:33:31
阅读次数:
231
这几天在学习netty ,将写的东西记一下.Netty是一个异步事件驱动的NIO框架,Netty的所有IO操作都是异步非阻塞的 client 1 package com.example.demo.nettyLearning; 2 3 import io.netty.bootstrap.Bootstr ...
分类:
Web程序 时间:
2018-05-30 12:08:56
阅读次数:
187
一 文件的读写 >>> f = open('/home/denny/text.txt', 'r') >>> f.read() 'hello world' >>> f.close() open函数传入 文件路径/文件名, 标识符 就打开的文件(标识符可以是 r rb<二进制文件,图片视频等>) 如果文 ...
分类:
其他好文 时间:
2018-05-29 01:40:21
阅读次数:
164
在高级篇二中,我们讲解了5中常用的IO模型,理解这些常用的IO模型,对于编写服务器程序有很大的帮助,可以提高我们的并发速度!因为在网络中通信主要的部分就是IO操作。在这一篇当中我们会重点讲解在第二篇当中提到的IO复用模型,即select机制。其实select机制有一些缺陷,后来产生了一种更加高效的机 ...
分类:
编程语言 时间:
2018-05-20 15:32:44
阅读次数:
236
协程: 基于单线程来实现并发。 协程并不是实际存在的实体,本质上是一个线程的多个部分。 比线程的单位更小——协程,纤程,在一个线程中可以开启很多协程。 在执行程序的过程中,遇到 IO 操作就冻结当前位置的状态,去执行其他任务,在执行其他任务的过程中,会不断地检测上一个冻结的任务是否 IO 结束,如果 ...
分类:
其他好文 时间:
2018-05-18 21:23:27
阅读次数:
162
在上一篇中,我们深入探讨了TCP/IP协议的11种状态,理解这些状态对我们编写服务器的时候有很大的帮助,但一般写服务器都是使用C/Java语言,因为这些语言对高并发的支持特别好。我们写的这些简单的服务器主要是为了深入学习TCP/IP协议、IO操作以及Python中协程的原理。在上一篇中也提到非阻塞这 ...
分类:
编程语言 时间:
2018-05-18 15:48:42
阅读次数:
209
IO流 当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作。 当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作。 因此我们把这种输入和输出动作称为IO操作。 File类 打开API,搜索File类。阅读其描述:File文件和目录路径名的抽象表示形式。即 ...
分类:
编程语言 时间:
2018-05-18 11:31:53
阅读次数:
224
目录 [TOC] 一、节点流和处理硫 1.1 节点流 也称为 低级流 ,可以从或向一个特定的地方(节点读写数据) 1.2 处理流 也称为 高级流 ,对一个已存在的连接和封装,通过所封装的流的功能调用实现数据读写。 处理流的构造方法总要带一个其他流对象做参数。一个流对象经过其他流的多次包装,成为流的链 ...
分类:
编程语言 时间:
2018-05-17 21:39:29
阅读次数:
218
计算机中执行任务的最小单元:线程 IO操作利用CPU GIL,全局解释器锁 IO密集型: 多线程(不用CPU) 计算机密集型(用CPU) 进程和线程的目的:提高执行效率 1、单进程单线程,主进程、主线程 2自定义线程: 主进程 主线程 子线程 ...
分类:
编程语言 时间:
2018-05-16 15:13:16
阅读次数:
160
1、概览读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。1.1、获取文件对象使用Python内置的open()
分类:
编程语言 时间:
2018-05-16 12:57:43
阅读次数:
199