随笔分类 - python
摘要:queue模块实现了多生产者,多消费者队列 queue模块的常用类和异常 queue.Queue(maxsize=0) 先进先出(FIFO)的队列, maxsize: 队列的大小(即队列的元素个数),默认0,队列大小无限;如果超过maxsize,队列会加锁,添加新元素是被堵塞,直到队列中的元素小于m
阅读全文
摘要:一、线程池 系统频繁的启动新线程,线程执行完被销毁,如果线程不能被重复使用,即每个线程都需要经过启动、销毁和运行3个过程,这必然会使得系统的性能急剧下降,线程池的意义就在于减少线程创建及消毁过程中损失的系统资源 线程池在程序运行时创建大量空闲线程,程序只需将要执行的任务交给线程池,线程池就会启动一个
阅读全文
摘要:一、线程条件Condition(条件变量) 依赖锁对象(Lock,RLock),锁对象可以通过参数传入获得,或者使用自动创建的默认锁对象当多个条件变量需要共享同一个锁时,建议传入锁对象 除了带有获取到锁的锁定池,Condition还包含一个未获取到锁的等待池,等待池中的线程处于等待阻塞状态,直到锁定
阅读全文
摘要:一、线程锁 保证多线程数据的一致性,对锁内的资源进行锁定,同一时间只能有一个线程来修改共享的数据多个线程同时加了同一个锁对象时,先获取到锁的线程会继续运行,未获取到锁的线程会处于堵塞状态,直到前面的线程释放锁,重新获取到锁才会往下运行 类型 threading.Lock 基本锁对象,每次只能获取一次
阅读全文
摘要:一、 线程的生命周期 当线程被创建并启动以后,它既不是一启动就进入执行状态,也不是一直处于执行状态,线程状态会多次在运行、就绪之间转换 线程的五种状态 新建(New) 当程序创建了一个Thread对象或Thread子类的对象后,该线程就处于新建状态,程序也不会立即执行该线程 就绪(Ready) 当调
阅读全文
摘要:一、线程的创建、启动 有关线程的一些注意 程序运行时默认创建一个主线程,主线程的线程执行体就是程序中的主程序,即没有放在任何函数中的代码块 主线程默认名为 MainThread,用户启动的多个线程名字依次是 Thread-1, Thread-2,... 当线程被创建后,必须通过调用线程的 start
阅读全文
摘要:一、线程与进程,并发与并行 一) 并发与并行 1 并发 同一时刻只能有执行一个任务,但多个任务间快速交替轮换执行,使得宏观上具有多个任务同时执行的效果 不同代码块交替执行 2 并行 同一时刻执行多个任务 不同代码块同时执行 二) 线程与进程 1 进程 进程是系统进行资源分配和调度的基本单位,是操作系
阅读全文
摘要:使用pymysql模块,主要用于Python3.x 连接 Mysql 数据库 请使用pip3 install pymysql安装模块 一、数据库连接对象 pymysql.connect(host='', user='', password='', database='', port=0, db=''
阅读全文
摘要:一、pathlib模块 该模块提供提供表示文件系统路径的类 该模块包括的类如图: pathlib.PurePath(pathfile) 返回表示纯路径的类 只对pathfile执行操作,不实际访问pathfile表示的文件,也不管pathfile表示的文件是否存在 如果未提供pathfile,默认当
阅读全文
摘要:一、模块 1 模块化 python可能需要借助于其他库更便捷的完成任务,同时一个源文件中不可能编写整个程序的源代码,这些都需要使用模块化的方式来组织项目的源代码 2 模块 包括 python标准库中的模块 用户自定义的实现特定功能的以.py为后缀名的文件 导入语法 import 模块名1 [as 别
阅读全文
摘要:一、迭代器 一) 迭代 重复多次,可以用 for-in 循环字符串,元组,列表,字典,range都是可迭代的,但不是迭代器,可用来创建迭代器 二) 迭代器 包含 __iter__() 方法和 __next__() 方法可以通过 next() 内置函数调用 __next__() 方法 __iter__
阅读全文
摘要:一、面对对象(OOP)的三大特征 1 多态 无需知道对象是什么类型就能对它执行操作 不同类型的对象执行相同的操作,操作结果随着对象的类型而异 多态是方法的多态,属性没有多态 示例 def add(x,y): return x+y sum1=add(2,3) sum2=add('aaa','bbb')
阅读全文
摘要:一、语法错误 程序运行过程出现的错误,包括语法上的错误和执行上的错误(通常是异常) 语法错误又称解析错误,可能是在学习Python时最容易遇到的错误Python解析器会打印出错误的行,并在错误行中错误位置显示一个下标箭头 二、异常 语句或表达式在语法上是正确的,执行时引发错误称为异常异常不一定会导致
阅读全文
摘要:一、函数 实现特定单一功能的一段代码,可重复使用函数能提高应用的模块性,和代码的重复利用率 二、函数的定义,调用,返回值 1 定义 def function_name(参数列表): 函数体 2 调用函数 函数必须先定义再调用 function_name(参数列表) 其中 可以没有参数,()必须要有
阅读全文
摘要:一、流程控制 Python支持两种基本流程控制结构 分支结构: 根据条件选择不同的代码块执行 循环结构: 根据循环条件重复代码块 if语句用于分支结构 for-in, while用于循环结构 break, continue用于循环控制 二 、分支结构 1 if条件判断 格式 基本格式 if cond
阅读全文
摘要:一、集合 集合中的元素无序且不可重复集合是无序的,不记录元素位置或插入顺序,因此,集合不支持索引,切片或其他序列操作 包括 set: 可变的集合类型 frozenset: 不可变的集合类型 定义 set_name = {value1, value2,...} set_name = set(itera
阅读全文
摘要:一、字典 一种由键值对(key-value)组成的具有映射关系的可变数据类型key-value称为项key可以是任意不可变数据类型,value可以是任意数据类型key必须唯一,value不必唯一 定义 dict_name = {key1: value1, key2: value2,...} dict
阅读全文
摘要:一、元组 元组和列表类似,由一系列按特定顺序排列的元素组成,但是元组是不可变的 定义 tuple_name = (value1, value2,...) 或者 tuple_name = tuple(iterable 二、元组操作 1 索引 tuple_1 = tuple(r'https://docs
阅读全文
摘要:一、序列 包含多项数据,数据项(成员)按顺序排列,可以通过索引来访问成员 序列类型 基础序列类型: list, tuple, range 文本字符串序列: string 二进制数据序列: bytes, bytearray, memoryview 二、列表 由一系列按特定顺序排列的元素组成,可以随时添
阅读全文
摘要:一、变量 变量是表示特定值的名称,用于保存数据 Python中的变量可以动态改变类型和值 格式 var=value var1,var2,var3=value1,value2,value3 变量可以是任意数据类型,无须申明即可直接赋值,value是字符串时必须要用引号括起来 Python中的变量类型可
阅读全文