摘要: 一.协程 ''' def gen(): for i in range(10): yield i # 初始化生成七函数 返回生成器对象,简称生成器 mygen = gen() for i in mygen: print(i) ''' # (1) 用协程改写成生产者消费者 ''' def produce 阅读全文
posted @ 2019-04-21 23:43 pycoder_hsz 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 七.线程局部变量 多线程之间使用threading.local 对象用来存储数据,而其他线程不可见 实现多线程之间的数据隔离 本质上就是不同的线程使用这个对象时,为其创建一个只属于当前线程的字典 拿空间换时间的方法。 例: from threading import local, Thread lo 阅读全文
posted @ 2019-04-21 20:46 pycoder_hsz 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 四.线程锁lock(线程的数据安全) 在数据量较大的时候,线程中的数据会被并发,所有数据会不同步,以至于数据会异常。 下面还介绍了两种的上锁方法。 例: from threading import Thread, Lock import time n = 0 def func1(lock): glo 阅读全文
posted @ 2019-04-21 20:45 pycoder_hsz 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 一.线程概念 进程是资源分配的最小单位 线程是计算机中调度的最小单位 多线程(即多个控制线程)的概念是,在一个进程中存在多个控制线程,多个控制线程共享该进程的地址空间,相当于一个车间内有多条流水线,都共用一个车间的资源。(一个进程里面开多个线程(共享同一个进程里面的内存空间)) #线程的缘起 资源分 阅读全文
posted @ 2019-04-21 20:44 pycoder_hsz 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 一.manager 常用的数据类型:dict list 能够实现进程之间的数据共享 进程之间如果同时修改一个数据,会导致数据冲突,因为并发的特征,导致数据更新不同步。 def work(dic, lock): # 简写:使用with语法自动给你上锁和解锁 with lock: dic["count" 阅读全文
posted @ 2019-04-21 20:40 pycoder_hsz 阅读(2115) 评论(0) 推荐(0) 编辑