08 2017 档案

摘要:了解新知识之前需要知道的一些知识 同步(synchronous):一个进程在执行某个任务时,另外一个进程必须等待其执行完毕,才能继续执行 #所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不会返回。按照这个定义,其实绝大多数函数都是同步调用。但是一般而言,我们在说同步、异步的时候,特 阅读全文
posted @ 2017-08-29 21:21 East~L 阅读(170) 评论(0) 推荐(0)
摘要:需要注意一下 不能无限的开进程,不能无限的开线程 最常用的就是开进程池,开线程池。其中回调函数非常重要 回调函数其实可以作为一种编程思想,谁好了谁就去掉 只要你用并发,就会有锁的问题,但是你不能一直去自己加锁吧 那么我们就用QUEUE,这样还解决了自动加锁的问题 由Queue延伸出的一个点也非常重要 阅读全文
posted @ 2017-08-29 21:17 East~L 阅读(147) 评论(0) 推荐(0)
摘要:一、死锁现象与递归锁 进程也是有死锁的 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用, 它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程, 如下就是死锁 1 死锁 2 from threa 阅读全文
posted @ 2017-08-29 21:12 East~L 阅读(174) 评论(0) 推荐(0)
摘要:一、多线程的概念介绍 threading模块介绍 threading模块和multiprocessing模块在使用层面,有很大的相似性。 二、开启多线程的两种方式 1 1.创建线程的开销比创建进程的开销小,因而创建线程的速度快 2 from multiprocessing import Proces 阅读全文
posted @ 2017-08-28 21:08 East~L 阅读(174) 评论(0) 推荐(0)
摘要:一、什么是线程 线程:顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 所以,进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才是cpu上的执行单位。 多线程(即多个控制线程)的概念是,在一个进程中存在多个控制线程,多个控制线程 阅读全文
posted @ 2017-08-28 21:04 East~L 阅读(139) 评论(0) 推荐(0)
摘要:一、数据共享 1.进程间的通信应该尽量避免共享数据的方式 2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的。 虽然进程间数据独立,但可以用过Manager实现数据共享,事实上Manager的功能远不止于此。 ? 1 2 3 4 命令就是一个程序,按回车就会执行(这个只是在 阅读全文
posted @ 2017-08-26 21:03 East~L 阅读(187) 评论(0) 推荐(0)
摘要:一、互斥锁 进程之间数据隔离,但是共享一套文件系统,因而可以通过文件来实现进程直接的通信,但问题是必须自己加锁处理。 注意:加锁的目的是为了保证多个进程修改同一块数据时,同一时间只能有一个修改,即串行的修改,没错,速度是慢了,牺牲了速度而保证了数据安全。 1.上厕所的小例子:你上厕所的时候肯定得锁门 阅读全文
posted @ 2017-08-26 21:00 East~L 阅读(135) 评论(0) 推荐(0)
摘要:一、multiprocessing模块介绍 python中的多线程无法利用CPU资源,在python中大部分情况使用多进程。python中提供了非常好的多进程包multiprocessing。 multiprocessing模块用来开启子进程,并在子进程中执行功能(函数),该模块与多线程模块thre 阅读全文
posted @ 2017-08-26 20:57 East~L 阅读(156) 评论(0) 推荐(0)
摘要:背景知识: 顾名思义,进程即一个软件正在进行的过程。进程是对正在运行程序的一个抽象。 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老的也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。所以想要真正了解进程,必须先了解操作系统。详见博客点击进入。 须 阅读全文
posted @ 2017-08-25 20:54 East~L 阅读(113) 评论(0) 推荐(0)
摘要:一、什么是粘包 须知:只有TCP有粘包现象,UDP永远不会粘包 粘包不一定会发生 如果发生了:1.可能是在客户端已经粘了 2.客户端没有粘,可能是在服务端粘了 首先需要掌握一个socket收发消息的原理 应用程序所看到的数据是一个整体,或说是一个流(stream),一条消息有多少字节对应用程序是不可 阅读全文
posted @ 2017-08-24 16:06 East~L 阅读(315) 评论(0) 推荐(0)
摘要:一、网络协议 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构(互联网中处处是C/S架构):B/S架构也是C/S架构的一种,B/S是浏览器/服务器 C/S架构与socket的关系:我们用socket就是为了完成C/S架构的开发 osi七层 引子: 须知一个完整的计算机系统是由硬件 阅读全文
posted @ 2017-08-21 17:08 East~L 阅读(240) 评论(0) 推荐(0)
摘要:一、错误与异常 程序中难免会出现错误,而错误分为两种 1.语法错误:(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) 2.逻辑错误:(逻辑错误),比如用户输入的不合适等一系列错误 那什么是异常呢? 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下。异 阅读全文
posted @ 2017-08-20 19:12 East~L 阅读(238) 评论(0) 推荐(0)
摘要:常用模块二 hashlib模块 hashlib提供了常见的摘要算法,如md5和sha1等等。 那么什么是摘要算法呢?摘要算法又称为哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 注意:摘要算法不是一个解密算法。(摘要算法,检测一个字符串 阅读全文
posted @ 2017-08-20 15:17 East~L 阅读(167) 评论(0) 推荐(0)
摘要:一、静态方法(staticmethod)和类方法(classmethod) 类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属性交互(也就是可以使用类属性) 静态方法:让类里的方法直接被类调用,就像正常调用函数一样 类方法和静态方法的相同点:都可以直接被类调用,不需要实例化 类方法和静 阅读全文
posted @ 2017-08-20 15:14 East~L 阅读(162) 评论(0) 推荐(0)
摘要:一、封装: 体现在两点: 1、数据的封装(将数据封装到对象中) obj = Foo('宝宝',22) 2、封装方法和属性,将一类操作封装到一个类中 class Foo: def __init__(self,name,age): self.name = name self.age = age def 阅读全文
posted @ 2017-08-20 14:53 East~L 阅读(287) 评论(0) 推荐(0)
摘要:一、组合 组合:组合指的是,在一个类中以另外一个类的对象(也就是实例)作为数据属性,称为类的组合 也就是说:一个类的属性是另一个类的对象,就是组合 例子: 圆环是由两个圆组成的,圆环的面积就是外圆的面积减去内圆的面积。圆环的周长就是内圆的周长加上外圆的周长,这个时候,我们首先设计一个圆形类,计算一个 阅读全文
posted @ 2017-08-20 14:30 East~L 阅读(220) 评论(0) 推荐(0)
摘要:一 概述 1、面向过程:面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。 2、面向对象:上帝的思想 3、类:是具有相同特征的一类事物(人,狗,老虎) 二、初始类和对象 在python中,用变量表示特征,用函 阅读全文
posted @ 2017-08-20 14:00 East~L 阅读(146) 评论(0) 推荐(0)
摘要:1.包A和包B下有同名模块也不会冲突,如A.a与B.a来自俩个命名空间 2.常见目录结构 1 import os 2 os.makedirs('glance/api') 3 os.makedirs('glance/cmd') 4 os.makedirs('glance/db') 5 l = [] 6 阅读全文
posted @ 2017-08-10 14:52 East~L 阅读(157) 评论(0) 推荐(0)
摘要:一、模块 1. import.... 一个py文件就可以作为一个模块 模块的导入:直接导入文件的名字,不需要带着后缀 模块中的函数调用:模块名.函数名() 导入模块的时候做了三件事:1.首先开辟了一个新的命名空间my_moudle 2.执行了my_moudle内的代码 3.将my_moudle里面的 阅读全文
posted @ 2017-08-10 14:44 East~L 阅读(149) 评论(0) 推荐(0)
摘要:一 、time模块 表示时间的三种方式: 时间戳:数字(计算机能认识的) 时间字符串:t='2012-12-12' 结构化时间:time.struct_time(tm_year=2017, tm_mon=8, tm_mday=8, tm_hour=8, tm_min=4, tm_sec=32, tm 阅读全文
posted @ 2017-08-08 17:32 East~L 阅读(201) 评论(0) 推荐(0)
摘要:一、认识模块 1、什么是模块:一个模块就是一个包含了python定义和声明的文件,文件名就是加上.py的后缀,但其实import加载的模块分为四个通用类别 : 1.使用python编写的代码(.py文件) 2.已被编译为共享库二和DLL的C或C++扩展 3.包好一组模块的包 4.使用C编写并连接到p 阅读全文
posted @ 2017-08-08 15:58 East~L 阅读(249) 评论(0) 推荐(0)
摘要:一、匿名函数:lambda表达式 1.匿名函数的核心:一些简单的需要用函数去解决的问题,匿名函数的函数体只有一行 2.参数可以有多个,用逗号隔开 3.返回值和正常的函数一样可以是任意的数据类型 二、匿名函数练习 1 请把下面的函数转换成匿名函数 2 def add(x,y) 3 return x+y 阅读全文
posted @ 2017-08-06 15:32 East~L 阅读(237) 评论(0) 推荐(0)
摘要:一、可迭代协议: 可以被迭代要满足要求的就叫做可迭代协议。内部实现了__iter__方法 iterable:可迭代的 对应的标志 什么叫迭代?:一个一个取值,就像for循环一样取值 字符串,列表,元组,集合,字典都是可迭代的 二、迭代器协议: 内部实现了__iter__,__next__方法 迭代器 阅读全文
posted @ 2017-08-02 16:46 East~L 阅读(157) 评论(0) 推荐(0)
摘要:内置函数操作: https://www.processon.com/ 具体分类见此网站 阅读全文
posted @ 2017-08-02 14:54 East~L 阅读(209) 评论(0) 推荐(0)
摘要:一、递归的定义 1.什么是递归:在一个函数里在调用这个函数本身 2.最大递归层数做了一个限制:997,但是也可以自己限制 1 def foo(): 2 print(n) 3 n+=1 4 foo(n) 5 foo(1) 验证997 3.最大层数限制是python默认的,可以做修改,但是不建议你修改。 阅读全文
posted @ 2017-08-01 17:06 East~L 阅读(199) 评论(0) 推荐(0)