04 2022 档案
摘要:>进程,线程 对比 1、每一个进程中必须至少包含一个线程,进程是不执行的,执行的只有线程,操作一个进程实际上就是操作里面的线程; 2、一个进行里面可以包含多个线程,多个线程可以同时执行(通过上下文的快速切换进行实现,同一时刻只有一个线程在执行,通过不断地切换程序使得看起来像是在并行),但同一个进程里
阅读全文
摘要:>>进程同步 # 多进程执行可以提高程序的运行效率,在多进程的过程中往往会有并发资源的处理,那么在处理的过程中有可能会 # 需要进行访问同步处理 # 多进程并发卖票处理 利用lock类实行数据同步 import multiprocessing import time def worke(dict,l
阅读全文
摘要:>多协程 >>什么是协程 协程即协作式程序,又可以称为‘微线程’或‘纤程’。所有的协程都是通过线程建的 >>yield实现多协程 # 使用yield实现协程 def producter(cons): info =None #必须首先发送一个noen cons.send(info) for item
阅读全文
摘要:>>Manager类共享数据操作 # 使用Manager 结合进程池实现生产者消费模式 import time from multiprocessing import Queue, Process, Pool,Manager def producter(q, data): q.put(data) d
阅读全文
摘要:>>进程间通信Pipe # Pipe 进程通信管道 ''' 管道是系统实行通信的一种技术手段,开发者可以利用管道创建两个通信链接对象,这两个对象可以实现单端通信,也可以是实现双端通信 ''' import multiprocessing def send_data(conn1,data): conn
阅读全文
摘要:>>进程队列(Queue) # 进程队列 mulprocessing.Queue ''' 队列是一种缓冲机制,为了解决因频繁的进程通信造成的通道拥堵的问题,可以引入队列进行数据管理 Queue类常用的操作方法 def __init__(self,maxsize=0,*,ctx) # 开辟队列并设置队
阅读全文
摘要:>>进程池Pool Pool类 Pool类可以提供指定数量的进程供用户调用,当有新的请求提交到Pool中时,如果池还没有满,就会创建一个新的进程来执行请求。如果池满,请求就会告知先等待,直到池中有进程结束, 才会创建新的进程来执行这些请求。 下面介绍一下multiprocessing 模块下的Poo
阅读全文
摘要:>进程 >>进程介绍 进程是程序各种资源管理的集合 >>multipprocessing模块 # Process类 # 创建进程的类 ''' # 常用属性和方法 pid 获取进程的ID name 获取进程的名称 Process([group [, target [, name [, args [,
阅读全文
摘要:>队列 >>FIFO(先入先出)队列Queue >>LIFO(后入先出)队列 >>优先级队列PriorityQueue ### >>FIFO(先入先出)队列Queue ### >>LIFO(后入先出)队列 ### >>优先级队列PriorityQueue from queue import Queu
阅读全文
摘要:>>线程操作队列 # 线程操作队列'''线程队列操作方法def __init__(self,maxsize)def put(self,item,block=True,timeout=None) # 像队列保存数据def get(self,block=True,timeout=None) # 从队列获
阅读全文
摘要:# 使用Condition 实现生产者与消费者模型 ''' def __init__(self,lock=None) def acquire(self,blocking = True ,timeout = -1) def wait(self,timeout = None) def notify(se
阅读全文
摘要:# 线程下的生产者消费模型import threadingimport time class data_base: def __init__(self): self.__name = None self.__value = None def creat_data(self, name, value)
阅读全文
摘要:GIL:Global Interpreter Lock,意思就是全局解释器锁,这个GIL并不是Python的特性,他是只在Cpython解释器里引入的一个概念,而在其他的语言编写的解释器里就没有GIL,例如:Jython,Pypy等 在CPython中,全局解释器锁(GIL)是一个互斥锁,可以防止多
阅读全文
摘要:>多线程 >>多任务 简单来说就是操作系统可以同时运行多个任务 并发:任务数大于CPU核数,通过操作系统的各种任务调度算法,实现多个任务‘一起’执行,比如在单核CPU下需要同时处理3个任务,这就是并发,单核CPU在开启任务一会立马开启任务二,任务三也同理,这段时间内交替执行任务的方式就是并发。此外单
阅读全文
摘要:>>init ''' 构造方法: 构造方法的名称定义必须是__init__()。 构造方法是程序的起点不允许有返回值的。 一个类中有且仅有一个或者零个的构造方法,不允许有多个构造方法的定义,否则程序会报错。 ''' # 定义无参构造方法 class Number: def __init__(self
阅读全文
摘要:类与对象 ''' 类与对象的定义 python中利用class关键字来定义类,一个类中可以定义若干个属性和方法。在类中定义的方法使用def 关键字声明即可 ''' class Member: ''' 定义信息设置方法,该方法需要接受name与age两个参数的内容 ''' def set_info(s
阅读全文
摘要:开放封闭原则(面向对象原则的核心) 软件的实体应该是可扩展的 不可修改的 对外扩展是开放得 而对修改是封闭得 装饰器的作用:在不更改原功能的内部函数代码 并且不改变调用方法的情况下为原始函数添加新的功能。 >>>实例:装饰器装饰函数 # 开放封闭原则 def login(func): def f
阅读全文
摘要:>eval()函数 ''' eval()函数 1:eval函数可以动态的执行字符串定义的表达式 2:将字符串转换成其他序列结构 3:使用全局变量 ''' # 1动态的执行字符串定义的表达式 num=10 result=eval('num*9+1') print(result) #2将字符串转换成其他
阅读全文
摘要:>函数作用域 作用域是指变量的使用范围,如果变量只能在本函数使用,那称为局部变量,在代码非函数定义的变量就是全局变量,全局变量可以由多个函数或者代码使用。 globals 函数和locals函数 globals()获取所有全局变量 locals ()获取所有局部变量 >纯函数 1.纯函数的概念: 简
阅读全文
摘要:>lambda 表达式 ''' 定义 lanbda 表达式 结构: 函数引用对象= 参数1,参数2...:程序语句; ''' sum = lambda x,y:x+y; print(sum(10, 20)) ''' 工作中往往会用 lambda进行一些简单的数据处理,根据程序的功能决定是是否使用la
阅读全文
摘要:>>定义 递归函数实际上是函数自己调用自己的过程,这样的函数称为递归函数 案例需求一:通过递归函数实现任意数的阶乘 1 1 2 1*2 3 1*2*3 def func(n): if n ==1: return 1 else: return n* func(n-1) print(func(5))
阅读全文
摘要:>函数定义 ''' 在python中 所有的函数都需要用def来定义 结构 def 函数名称(参数1,参数2,参数...): 函数主体代码 [return [返回值]] ''' 定义一个无参有返回值的参数 def get_info(): return '人生苦短,我学python' print(ge
阅读全文