摘要: 一、IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能 阅读全文
posted @ 2018-04-03 18:35 lioushell 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 一、引子 之前我们学习了线程、进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位。按道理来说我们已经算是把cpu的利用率提高很多了。但是我们知道无论是创建多进程还是创建多线程来解决问题,都要消耗一定的时间来创建进程、创建线程、以及管理他们之间的切换。 随着我们对于效率 阅读全文
posted @ 2018-04-03 18:34 lioushell 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 一、操作系统线程理论 (一)、线程概念的引入背景 1、进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于 阅读全文
posted @ 2018-03-29 18:57 lioushell 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 一、什么是进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程 阅读全文
posted @ 2018-03-23 20:17 lioushell 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 一、手工操作 —— 穿孔卡片 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机 阅读全文
posted @ 2018-03-23 19:41 lioushell 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 一、socket概念 1、socket层 2、理解socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织 阅读全文
posted @ 2018-03-20 15:10 lioushell 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 一、软件开发的架构 我们了解的涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用 这些应用的本质其实都是两个程序之间的通讯。而这两个分类又对应了两个软件开发 阅读全文
posted @ 2018-03-19 15:30 lioushell 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 一、异常和错误 part1:程序中难免出现错误,而错误分成两种 1、语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 def test: pass #语法错误示范三 print(haha) # 错误信息 # SyntaxE 阅读全文
posted @ 2018-03-15 19:40 lioushell 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 一、hashlib模块 算法介绍 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 摘要算法就是通过摘要函数f()对任意长度的数据d 阅读全文
posted @ 2018-03-14 16:46 lioushell 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 1、isinstance和issubclass 1)、isinstance(obj,cls)检查是否obj是否是类 cls 的对象 print(obj.__dict__) #由于报错无法执行 class Foo(object): pass obj = Foo() print(isinstance(o 阅读全文
posted @ 2018-03-12 15:51 lioushell 阅读(136) 评论(0) 推荐(0) 编辑