-
在同一个线程里面,可以连续调用多次acquire,一定要注意acquire的次数和release的次数相同
-
python解释器包含了python虚拟机 https://www.zhihu.com/question/59570108?sort=created
-
for是按顺序执行,当其中卡主,会根据上下文进行切换到别的地方执行
-
在woindows下进行多进程编程,最好放在 if name == “main”: 内运行,不然会抛出异常
-
from queue import PriorityQueue 优先级队列
-
队列本身是数据安全的
-
python多进程编程的模块 from concurrent.futures import ThreadPoolExecutor 和 ProcessPoolExecutor
-
os.fork() 会拷贝父进程创建一个子进程,只能在linux下使用;此时父进程和子进程会拷贝 so.fork()下的代码,也就是执行两次;
-
在等待进程池所有内容返回之前,必须将进程池close() 即: pool.close() pool.join()
-
向线程池里面添加任务用 submit() ,进程池用 .apply_async(函数名,args=(,))
-
pool.imap() pool.imap_unordered() 使用进程池的两个方法
-
多线程的队列用于线程之间的通信(from queue import Queue),这个Queue只能用于多线程
-
多进程之间的通信 from mulitprocessing import Process,Queue,pool,Manager 【这个queue 不能用于pool进程池,Manager().Queue()可以用于进程之间的通信】
-
共享全局变量的方式只能用于多线程之间的通信,不能用于多进程之间的通信;多进程之间的数据是完全隔离的
-
多进程之间的通信可以使用 管道 Pipe() ,recevie_pipe,send_pipe = Pipe()
-
进程之间的通信 --》 共享内存 Manager().dick() 等数据结构
-
阻塞和非租塞主要是针对函数来说
-
c10M问题 如何利用8核心cpu,64G内存,在10gbps的网络上保持1000万并发连接
-
协程-》有多个入口的函数,可以暂停的函数,可以向展厅的地方传入值得函数
-
在调用send发送非None值之前,我们必须启动一次生成器,方式有两种 1.gen.send(None) 2.next(gen)
-
关闭生成器,向生成器抛出异常【12章】
-
yield 和yield from的区别
-
yield from 会自动处理 StopIteration 异常【协程 return 会抛出的异常】
-
使用原生协程 async await 原生协程的调用只能使用send()
-
协程是单线程模式,不能再函数中写入耗时的操作,有耗时的操作一定要yield出去
-
yield from 的用法: 在一个协程内调用另一个协程;调用方,委托生成器,子生成器;yield from 会在调用方与子生成器之间建立一个双向通道
python细节
最新推荐文章于 2022-11-12 20:08:45 发布