摘要: 协程:遇到IO操作就切换,但是什么时候切回去呢?怎么确定IO操作? 很多程序员可能会考虑使用“线程池”或“连接池”。“线程池”旨在减少创建和销毁线程的频率,其维持一定合理数量的线程,并让空闲的线程重新承担新的执行任务。“连接池”维持连接的缓存池,尽量重用已有的连接、减少创建和关闭连接的频率。 这两种 阅读全文
posted @ 2019-06-19 09:59 钟桂耀 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。 程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。 在多道编程中,我们允 阅读全文
posted @ 2019-06-19 09:53 钟桂耀 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 之前我们学习了线程、进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位。按道理来说我们已经算是把cpu的利用率提高很多了。但是我们知道无论是创建多进程还是创建多线程来解决问题,都要消耗一定的时间来创建进程、创建线程、以及管理他们之间的切换。 随着我们对于效率的追求不断 阅读全文
posted @ 2019-06-19 09:53 钟桂耀 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 多任务 先看一下代码 #!/usr/bin/env python #coding:utf-8 from time import sleep def sing(): for i in range(3): print("正在唱歌...%d"%i) sleep(1) def dance(): for i 阅读全文
posted @ 2019-06-19 09:51 钟桂耀 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 手工操作 —— 穿孔卡片 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出 阅读全文
posted @ 2019-06-19 09:50 钟桂耀 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 一、什么是因特网客户端 这里,我们将详细了解三个因特网协议——FTP, NNTP 和 POP3,并写出它们的客户端程序 二、文件传输 2.1 文件传输因特网协议 1、因特网中最流行的事情就是文件的交换,文件交换无处不在 2、有很多协议可以供因特网上传输文件使用 3、最流行的有文件传输协议(FTP), 阅读全文
posted @ 2019-06-19 09:24 钟桂耀 阅读(133) 评论(0) 推荐(0) 编辑
摘要: forking 什么是forking 1、fork(分岔)在Linux系统中使用非常广泛 2、当某一命令执行时,父进程(当前进程)fork出一个子进程 3、父进程将自身资源拷贝一份,命令在子进程中运行时,就具有和父进程完全一样的运行环境 进程的生命周期 1、父进程fork出子进程并挂起 2、子进程运 阅读全文
posted @ 2019-06-19 09:21 钟桂耀 阅读(281) 评论(0) 推荐(0) 编辑
摘要: xinetd 什么是xinetd 1、xinetd可以统一管理很多服务进程,它能够: 绑定、侦听、和接受来对自服务器每个端口的请求 有客户端访问时,调用相应的服务器程序响应 节约了系统内存资源 同时响应多个客户端的连接请求 2、Windows系统没有该功能 3、多数UNIX系统使用的是inetd实现 阅读全文
posted @ 2019-06-19 09:20 钟桂耀 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 再看继承 真正的大餐来之前,还是来点儿开胃菜!回顾一下关于类的继承的知识: 我们先看上面的代码,这是一个简单的类继承,我们可以看到父类Base和子类Son,它们中各有一个Testfunc方法,当我们实例化子类的对象sonobj时,可以看到初始化方法中黄色框框调用了Testfunc,那么这个时候执行的 阅读全文
posted @ 2019-06-19 09:19 钟桂耀 阅读(132) 评论(0) 推荐(0) 编辑
摘要: SocketServer模块 SocketServer 是标准库中一个高级别的模块。用于简化网络客户与服务器的实现。模块中,已经实现了一些可供使用的类 Socketserver模块简化了编写网络服务程序,同时socketserver模块也是python标准库中很多服务器框架的基础。 SocketSe 阅读全文
posted @ 2019-06-19 09:18 钟桂耀 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 一、IO多路复用 I/O多路复用指:通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。 但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则 阅读全文
posted @ 2019-06-19 09:17 钟桂耀 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 七,struct模块 解c语言的人,一定会知道struct结构体在c语言中的作用,它定义了一种结构,里面包含不同类型的数据(int,char,bool等等),方便对某一结构对象进行处理。而在网络通信当中,大多传递的数据是以二进制流(binary data)存在的。当传递字符串时,不必担心太多的问题, 阅读全文
posted @ 2019-06-19 09:16 钟桂耀 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 粘包 黏包现象让我们基于tcp先制作一个远程执行命令的程序(命令ls -l ; lllllll ; pwd)执行远程命令的模块 需要用到模块subprocess subprocess通过子进程来执行外部指令,并通过input/output/error管道,获取子进程的执行的返回信息。 import 阅读全文
posted @ 2019-06-19 09:15 钟桂耀 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 正则表达式概述 正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正 阅读全文
posted @ 2019-06-19 09:07 钟桂耀 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 十五、元类 和__metaclass__ 一:知识储备 exec exec:三个参数 参数一:字符串形式的命令 参数二:全局作用域(字典形式),如果不指定,默认为globals() 参数三:局部作用域(字典形式),如果不指定,默认为locals() exec的应用: #可以把exec命令的执行当成是 阅读全文
posted @ 2019-06-19 09:02 钟桂耀 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 特殊方法__getattribute__() 1、Python 类有一个名为__getattr__()的特殊方法,它仅当属性不能在实例的__dict__或它的类(类的__dict__),或者祖先类(其__dict__)中找到时, 才被调用 2、它使用起来,类似__getattr__(),不同之处在于 阅读全文
posted @ 2019-06-19 08:58 钟桂耀 阅读(305) 评论(0) 推荐(0) 编辑
摘要: __slots__类属性 1.__slots__是什么:是一个类变量,变量值可以是列表,元祖,或者可迭代对象,也可以是一个字符串(意味着所有实例只有一个数据属性) 2.引子:使用点来访问属性本质就是在访问类或者对象的__dict__属性字典(类的字典是共享的,而每个实例的是独立的) 3.为何使用__ 阅读全文
posted @ 2019-06-19 08:50 钟桂耀 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 十三、*授权 包装 包装:对一个已存在的对象进行包装,不管它是数据类型,还是一段代码,可以是对一个已存在的对象,增加新的,删除不要的,或者修改其它已存在的功能 包装包括定义一个类,它的实例拥有标准类型的核心行为 换句话说,它现在不仅能唱能跳,还能够像原类型一样步行,说话. 你还可以包装类,但这不会有 阅读全文
posted @ 2019-06-19 08:48 钟桂耀 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 六 property 调用property()是构建数据描述符的一种简捷方式,可以在访问属性时触发函数调用。它的特征是 property(fget=None, fset=None, fdel=None, doc=None) -> property attribute 属性是一种有用的特殊类型的描述符 阅读全文
posted @ 2019-06-19 08:47 钟桂耀 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 五、描述符(__get__,__set__,__delete__) 什么是描述符 Python为开发者提供了一个非常强大的功能——描述符。那什么是描述符呢?通过查看Python的官方文档,我们知道把实现了__get__()、__set__()和__delete__()中的其中任意一种方法的类称之为描 阅读全文
posted @ 2019-06-19 08:46 钟桂耀 阅读(269) 评论(0) 推荐(0) 编辑