摘要: 一 引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两种情况下切走去执行其他的任务(切换由操作系统强制控制),一种情况是该任务发生了阻塞,另外一种情况是该任务计算的时间 阅读全文
posted @ 2019-07-25 17:28 太白*金星 阅读(2722) 评论(0) 推荐(5) 编辑
摘要: 一 背景知识 一 背景知识 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。有名的编译器例如GCC,INTEL C++,Visual C++等。Pyth 阅读全文
posted @ 2019-07-23 15:47 太白*金星 阅读(1278) 评论(0) 推荐(0) 编辑
摘要: 一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 官网链接:https://docs.python.org/3/library/threading.html?highlight=threading# 阅读全文
posted @ 2019-07-23 15:38 太白*金星 阅读(3528) 评论(1) 推荐(9) 编辑
摘要: 一 什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 车间负责把资源整合到一起,是一个资源单位,而一个车间内至少有一个流水线 流水线的工作需要电源,电源就相当于cpu 所以 阅读全文
posted @ 2019-07-23 15:24 太白*金星 阅读(2126) 评论(0) 推荐(2) 编辑
摘要: 一. 软件的开发规范 什么是开发规范?为什么要有开发规范呢? 你现在包括之前写的一些程序,所谓的'项目',都是在一个py文件下完成的,代码量撑死也就几百行,你认为没问题,挺好。但是真正的后端开发的项目,系统等,少则几万行代码,多则十几万,几十万行代码,你全都放在一个py文件中行么?当然你可以说,只要 阅读全文
posted @ 2019-06-27 20:11 太白*金星 阅读(10305) 评论(4) 推荐(13) 编辑
摘要: 1. 序列化模块 我们今天学习下序列化,什么是序列化呢? 序列化的本质就是将一种数据结构(如字典、列表)等转换成一个特殊的序列(字符串或者bytes)的过程就叫做序列化。那么有同学就会问了,为什么要转化成这个序列,我们不是学过么? 首先你要看清楚!我说的是一个特殊的序列,而不是我们常用的str这种字 阅读全文
posted @ 2019-05-21 14:50 太白*金星 阅读(9535) 评论(3) 推荐(8) 编辑
摘要: 1. 模块的定义与分类 模块是什么? 这几天,我们进入模块的学习。在学习模块之前,我们首先要知道,什么是模块? 一个函数封装一个功能,你使用的软件可能就是由n多个函数组成的(先备考虑面向对象)。比如抖音这个软件,不可能将所有程序都写入一个文件,所以咱们应该将文件划分,这样其组织结构要好并且代码不冗余 阅读全文
posted @ 2019-05-21 00:06 太白*金星 阅读(8814) 评论(2) 推荐(14) 编辑
摘要: 1. 开放封闭原则 什么是开放封闭原则?有的同学问开放,封闭这是两个反义词这还能组成一个原则么?这不前后矛盾么?其实不矛盾。开放封闭原则是分情况讨论的。 我们的软件一旦上线之后(比如你的软件主要是多个函数组成的),那么这个软件对功能的扩展应该是开放的,比如你的游戏一直在迭代更新,推出新的玩法,新功能 阅读全文
posted @ 2019-05-15 18:59 太白*金星 阅读(9873) 评论(11) 推荐(28) 编辑
摘要: 1. 匿名函数 匿名函数,顾名思义就是没有名字的函数,那么什么函数没有名字呢?这个就是我们以后面试或者工作中经常用匿名函数 lambda,也叫一句话函数。 现在有一个需求:你们写一个函数,此函数接收两个int参数,返回和值。 那么接下来我们用匿名函数完成上面的需求: 我们分析一下上面的代码: 语法: 阅读全文
posted @ 2019-05-14 16:38 太白*金星 阅读(12187) 评论(6) 推荐(13) 编辑
摘要: 1 生成器 1.1 初识生成器 什么是生成器?这个概念比较模糊,各种文献都有不同的理解,但是核心基本相同。生成器的本质就是迭代器,在python社区中,大多数时候都把迭代器和生成器是做同一个概念。不是相同么?为什么还要创建生成器?生成器和迭代器也有不同,唯一的不同就是:迭代器都是Python给你提供 阅读全文
posted @ 2019-05-13 17:53 太白*金星 阅读(12337) 评论(18) 推荐(15) 编辑