摘要: 相关名词解析 同步(synchronous):一个进程在执行某个任务时,另外一个进程必须等待其执行完毕,才能继续执行 #所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不会返回。按照这个定义, 其实绝大多数函数都是同步调用。但是一般而言,我们在说同步、异步的时候, 特指那些需要其他部 阅读全文
posted @ 2018-02-19 23:18 小河马的博客 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 注意 1.不能无限的开进程,不能无限的开线程最常用的就是开进程池,开线程池。其中回调函数非常重要回调函数其实可以作为一种编程思想,谁好了谁就去掉2.只要你用并发,就会有锁的问题,但是你不能一直去自己加锁吧那么我们就用QUEUE,这样还解决了自动加锁的问题由Queue延伸出的一个点也非常重要的概念。以 阅读全文
posted @ 2018-02-19 22:59 小河马的博客 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 一、死锁现象与递归锁 进程也是有死锁的 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用, 它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程, 如下就是死锁 #死锁现象 死锁 from thr 阅读全文
posted @ 2018-02-19 22:26 小河马的博客 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 一多线程的概念介绍 threading模块介绍 threading模块和multiprocessing模块在使用层面,有很大的相似性。 二、开启多线程的两种方式 创建线程的开销比创建进程的开销小,因而创建线程的速度快。 #开启进程的第一种方式 from multiprocessing import 阅读全文
posted @ 2018-02-19 22:18 小河马的博客 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 一、什么是线程 线程:顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 所以,进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才是cpu上的执行单位。 多线程(即多个控制线程)的概念是,在一个进程中存在多个控制线程,多个控制线程 阅读全文
posted @ 2018-02-19 21:54 小河马的博客 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 一、数据共享 1.进程间的通信应该尽量避免共享数据的方式 2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的。 虽然进程间数据独立,但可以用过Manager实现数据共享,事实上Manager的功能远不止于此。 命令就是一个程序,按回车就会执行(这个只是在windows情况下 阅读全文
posted @ 2018-02-19 21:52 小河马的博客 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 一、multiprocessing模块介绍 python中的多线程无法利用CPU资源(主要指计算密集型任务),在python中大部分情况使用多进程。python中提供了非常好的多进程包multiprocessing。 multiprocessing模块用来开启子进程,并在子进程中执行功能(函数),该 阅读全文
posted @ 2018-02-19 18:07 小河马的博客 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 一、什么是进程 进程:正在进行的一个过程或是一个任务。而负责执行任务的是CPU。 举例:(单核+多道,实现多个进程的并发): 比如说你就是一个CPU,你下午有几个活要干,吃饭,洗衣服,上厕所等。但是就在那一下午要把所有的事干完(而CPU同一时间只能干一件事),那么如何才能让多个任务实现并发执行的效果 阅读全文
posted @ 2018-02-19 17:57 小河马的博客 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 一、什么是粘包 须知:只有TCP有粘包现象,UDP永远不会粘包 粘包不一定会发生 如果发生了:1.可能是在客户端已经粘了 2.客户端没有粘,可能是在服务端粘了 首先需要掌握一个socket收发消息的原理 应用程序所看到的数据是一个整体,或说是一个流(stream),一条消息有多少字节对应用程序是不可 阅读全文
posted @ 2018-02-19 17:43 小河马的博客 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 一、网络协议 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构(互联网中处处是C/S架构):B/S架构也是C/S架构的一种,B/S是浏览器/服务器 C/S架构与socket的关系:我们用socket就是为了完成C/S架构的开发 osi七层 引子: 须知一个完整的计算机系统是由硬件 阅读全文
posted @ 2018-02-19 16:15 小河马的博客 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 一、创建类的执行流程 二、元类的认识 什么是元类呢?在Python3中继承type的就是元类 二、元类的示例 # 方式一 class MyType(type): '''继承type的就是元类''' def __init__(self,*args,**kwargs): print("MyType创建的 阅读全文
posted @ 2018-02-19 15:54 小河马的博客 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 一、错误与异常 程序中难免会出现错误,而错误分为两种 1.语法错误:(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) 2.逻辑错误:(逻辑错误),比如用户输入的不合适等一系列错误 那什么是异常呢? 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下。异 阅读全文
posted @ 2018-02-19 15:51 小河马的博客 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 一、静态方法(staticmethod)和类方法(classmethod) 类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属性交互(也就是可以使用类属性) 静态方法:让类里的方法直接被类调用,就像正常调用函数一样 类方法和静态方法的相同点:都可以直接被类调用,不需要实例化 类方法和静 阅读全文
posted @ 2018-02-19 15:44 小河马的博客 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 一、什么是单例模式 保证一个类只有一个实例,并提供一个访问它的全局访问点 二、优点 对唯一实例的受控访问 单利相当于全局变量,但防止了命名空间被污染 与单利模式功能相似的概念:全局变量、静态变量(方法) 试问?为什么用单例模式,不用全局变量呢? 答、全局变量可能会有名称空间的干扰,如果有重名的可能会 阅读全文
posted @ 2018-02-19 15:16 小河马的博客 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 一、回顾 面向对象 1.类:具有相同属性和方法 的一类事物 类名可以实例化一个对象 类名可以调用类属性,(静态属性 和(方法)动态属性) 2.对象:也就是实例 对象名:调用对象属性 调用方法 3.什么叫抽象? 从小到大的过程 4.组合 什么有什么的关系(将一个类的对象当做另一个类的属性) 5.继承 阅读全文
posted @ 2018-02-19 15:11 小河马的博客 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 1.封装: 什么是封装呢?(封装不是单纯意义的隐藏,其实它还是可以查看的) 就是把一些不想让别人看的给隐藏起来了 封装数据:目的是保护隐私 功能封装:目的是隔离复杂度 如果用了私有的,在类的外部,无法直接使用变形的属性,但是在类的内部可以直接使用 # 对象名.属性名取值的三种方法 1.用我们常用的_ 阅读全文
posted @ 2018-02-19 13:09 小河马的博客 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 一、组合 组合:组合指的是,在一个类中以另外一个类的对象(也就是实例)作为数据属性,称为类的组合 也就是说:一个类的属性是另一个类的对象,就是组合 例子: 圆环是由两个圆组成的,圆环的面积就是外圆的面积减去内圆的面积。圆环的周长就是内圆的周长加上外圆的周长,这个时候,我们首先设计一个圆形类,计算一个 阅读全文
posted @ 2018-02-19 12:31 小河马的博客 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 一、面向过程:面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。 优点:极大地降低了写成学的复杂度,只需要顺着执行的步骤,堆叠代码即可 缺点:一套流水线或者流程就是用来解决一个问题,如果修改代码就都得改变 二 阅读全文
posted @ 2018-02-19 12:24 小河马的博客 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 1.包A和包B下有同名模块也不会冲突,因为A.a与B.a来自俩个命名空间 2.常见目录结构 # 创建目录代码 import os os.makedirs('glance/api') os.makedirs('glance/cmd') os.makedirs('glance/db') l = [] l 阅读全文
posted @ 2018-02-19 11:29 小河马的博客 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 一、模块 1.import.... 一个py文件就可以作为一个模块 模块的导入:直接导入文件的名字,不需要带着后缀 模块中的函数调用:模块名.函数名() 导入模块的时候做了三件事:1.首先开辟了一个新的命名空间my_moudle 2.执行了my_moudle内的代码 3.将my_moudle里面的名 阅读全文
posted @ 2018-02-19 11:16 小河马的博客 阅读(216) 评论(0) 推荐(0) 编辑