摘要: 一般想要处理cpu 密集型的任务会选择 multiprocessing 模块来进行加速。要想发挥出 multiprocessing 模块的优势,最好是通过 concurrent.futures 模块及其 ProcessPoolExecutor 类来编写代码,因为这样做比较简单。 只有在其他方案全都无 阅读全文
posted @ 2022-03-20 17:26 profound-wu 阅读(105) 评论(0) 推荐(0)
摘要: 如何定义线程 使用构造函数 def func(infile, outfile): f = zipfile.ZipFile(outfile, 'w', zipfile.ZIP_DEFLATED) f.write(infile) f.close() print('Finished background 阅读全文
posted @ 2022-03-20 17:20 profound-wu 阅读(85) 评论(0) 推荐(0)
摘要: 谈谈 GIL 是什么? 全局解释器锁,是一种互斥锁 在 CPython 中,每一个 Python 线程执行前都需要去获得 GIL 锁,获得该锁的线程才可以执行,没有获得的只能等待,当具有 GIL 锁的线程运行完成后,其他等待的线程就会去争夺 GIL 锁,这就造成了,在 Python 中使用多线程,但 阅读全文
posted @ 2022-03-20 17:02 profound-wu 阅读(201) 评论(0) 推荐(0)
摘要: 为什么要序列化 因为TCP/IP协议只支持字节数组的传输,不能直接传对象。对象序列化的结果一定是字节数组!当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢 阅读全文
posted @ 2022-03-20 16:58 profound-wu 阅读(91) 评论(0) 推荐(0)
摘要: 交换变量值 作用域 Python 的作用域可以分为四种: L(Local) 局部作用域 E(Enclosing) 闭包函数外的函数中 G(Global) 全局作用域 B(Built-in) 内建作用域 变量/函数 的查找顺序: L –> E –> G –>B 如何查找模块中的全局变量和局部变量 gl 阅读全文
posted @ 2022-03-20 16:57 profound-wu 阅读(75) 评论(0) 推荐(0)
摘要: 什么是引用赋值? 引用就是对象在内存中的数字地址编号,变量就是方便对引用的表示而出现的,变量指向的就是此引用。赋值的本质就是让多个变量同时引用同一个对象的地址。 Python 有哪些数据类型?(需要写出每种类型的常用方法) 整型 列表 元组 字典 字符串 集合 布尔 什么是不可变对象,什么是可变对象 阅读全文
posted @ 2022-03-20 16:52 profound-wu 阅读(287) 评论(0) 推荐(0)