目录
一、Python多进程
1.多进程
利用计算机的多核资源达到同时执行多个任务的目的,以此提升程序的执行效率。
只写一个hello函数并不是多进程,多进程是多个程序同时运行
2.进程间通信
进程有自己独立的运行空间,他们之间所有的变量、数据是隔绝的,A进程中的变量test与B进程中的变量没有任何关系,这就意味着要使用一些特殊的手段才能实现他们之间的数据交换。
进程间通信还是文件通信
1.pipe 双向通信
2.queue(队列) 单线程,队列相当于水箱,发送将信息传给队列,接收时从队列读取信息
3.进程锁
在多线程和多进程中,对线程和进程加锁,保证一个线程或进程在对共享对象进行修改时,其他的线程或进程无法访问这个对象,直至获取锁的线程的操作执行完毕后释放锁,达到一个同步的作用。
4.进程池
定义了一个池子,在池子里面放入固定数量的进程,有需求就用池中的进程处理任务,等到处理完毕进程并不关闭,而是将进程再放回进程池中继续等待任务。如果有很多任务需要执行,池中的进程数量不够,任务就要等待之前的进程执行任务完毕归来拿到空闲的进程才能继续执行。
池中进程数量固定,同一时间最多有固定数量的进程在运行。
5.多线程
线程是CPU分配资源的基本单位。
程序开始运行,这个程序就变成了一个进程,而一个进程相当于一个或者多个线程。当没有多线程编程时,一个进程就相当于一个主线程;当有多线程编程时,一个进程包含多个线程(主线程)
多个线程可以在同一个程序中运行,并且每个线程完成不同任务。
二、Python高级特性
1.装饰器
给现有模块增添新的小功能,可以对原函数进行功能扩展,而且还不需要修改原函数的内容,也不需要修改原函数的调用。
手机的手机壳,不同的手机壳起了不同的装饰作用,但是手机一直是那个手机。
在函数之前和之后,
加一些需要的装饰
2.迭代器
可以一个个读取操作的对象称为迭代对象,可迭代对象就是能用for循环迭代元素。而迭代器是指可以用next()获取下一个值。
能被for循环访问的是可迭代对象;
能被next( )函数获取下一个值的是迭代器。
所有的迭代器都实现了__iter__()和__next()__方法
函数实现:
3.生成器
和迭代器相辅相成,一边迭代(循环)一边计算的机制称为生成器。生成器能够迭代的关键是因为他有一个__next__方法。每迭代一次生成一个元素,动态生成,节约内存。
使用yield编写生成器
yield和return相似,return返回有效的Python对象,yield返回生成器。
yield保存函数内部的算法,每次调用就通过算法计算出下一个元素的值,直到计算到最后一个元素。
下面是yield构造斐波那契数列,yield返回的是下一次计算得到的结果
4.匿名函数
5.高阶函数
接收一个函数做参数的函数
def f(func)
sorted():排序
filter(a,b):过滤,a是函数,b是被过滤的列表数据
map(a,b) a是函数,b是可迭代对象
6.切片
slice对序列型对象(list、string、tuple)取出序列中一个范围对应的元素。
7.列表解析式
对list进行解析:通过对list中的每一个元素应用一个函数,从而将一个list映射成为另一个list。类似于lambda匿名函数
8.元组拆包
三、Python常用模块
1.OS 操作系统相关
2.Requests 网络请求标准库
3.time 时间
4.base64 用字符表示二进制数据
5.configparser 配置文件
程序初始化、配置服务
6. collections 特殊容器类
总结
本次课程是Python武器库中的Python的高级特性,主要是从细节处入手提升Python编程能力。