摘要:
一般使用for循环的顺序: 先创建一个迭代器:列表,并且列表内已存在数据 接着使用 for循环遍历列表 但这样存在一个问题,假如列表内的数据量很大,这样还未使用for循环便已经被列表占用很大的资源 这时我们就可以将这个迭代器做成一个生成数据的迭代器,而非只是占用大资源的数据,从而减少资源占用 pyt 阅读全文
摘要:
迭代器的执行流程,以及说明可迭代对象不一定是迭代器,但迭代器一定是可迭代对象 实例1 实例1的优化 阅读全文
摘要:
使用到: 进程池(重复利用进程),队列(用于进程间的通信,显示进度) 功能: 拷贝文件夹下的所有文件,显示进度 注意: 如涉及到进程池同时需要使用到队列,使用multiprocessing.Manager().Queue(),而非multiprocessing.Queue() 阅读全文
摘要:
from multiprocessing import Pool import os import time def worker(num): print("task is runing " % (os.getpid(), num)) time.sleep(2) def main(): # 定义一个进程池,最大进程数3 po = Pool(3) ... 阅读全文
摘要:
使用 multiprocessing 里的 Queue() 阅读全文
摘要:
作用: 解决资源竞争问题 死锁: 当一组线/进程中的每个线/进程都在等待某个事件发生,而只有这组线/进程中的其他进程才能触发该事件,这就称这组线/进程发生了死锁。 创建的锁过多,可能会造成死锁问题。 可以在设计程序时从逻辑上避免死锁出现,延时、银行家算法等 # 以下代码如未使用互斥锁,最终计算出来的 阅读全文
摘要:
# 创建类的线程 import threading import time class MyThread(threading.Thread): def run(self): for i in range(3): time.sleep(1) msg = "我是[线程]" + self.name + '@' + str(i)... 阅读全文
摘要:
udp: 1.创建套接字 socket 2.绑定本地ip/port bind 3.收发数据 sendto/recvfrom 4.关闭套接字 close tcp客户端: 1.创建套接字 socket 2.连接服务端 connect 3.收发数据 send/recv 4.关闭套接字 close tcp服 阅读全文
摘要:
# 创建 setup.py # 目录结构 注:以下命令是在虚拟环境执行 # 构建模块 $ python setup.py build # 生成发布压缩包 $ python setup.py sdist # 解压压缩包 $ tar -zxvf a_message-1.0.tar.gz # 安装模块,如 阅读全文
摘要:
在属性/方法名前有双下划线的,称为私有属性/方法,私有属性/方法外部不能直接访问, 一般访问类的私有属性,可以通过自身调用 使用了私有属性的公有方法 间接访问私有属性/方法, 但python中并没有真正意义的私有,可以通过 _类名__属性/方法 来访问。 例: 有一个Woman类,内有私有属性 __ 阅读全文