摘要: 线程的互斥锁 死锁 from threading import Thread,Lock import time,random mutex1 = Lock() mutex2 = Lock() def fun1(): mutex1.acquire() print("抢到了锁1") time.sleep( 阅读全文
posted @ 2018-11-09 21:13 msjaxuexi 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 线程的守护的使用,形式与进程基本相同 线程的常用方法 current_thread 当前线程名 active_count 当先活跃的线程数量 enumerate 返回活跃的线程对象枚举 name 线程名字 阅读全文
posted @ 2018-11-09 21:07 msjaxuexi 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 线程是什么? 线程是CPU的基本执行单位 线程里面包括就是要执行的代码 进程是一个资源单位 其中包括了这个程序需要的所有资源 ​ 就像是一个工厂 里面包括了生产所需所有资源 ​ 线程像一条流水线 包含具体的执行步骤 ​ 一个工厂中可以包含多个线程 每个线程可以生产不同的产品 每个进程被启动后 就会自 阅读全文
posted @ 2018-11-09 21:05 msjaxuexi 阅读(105) 评论(0) 推荐(0) 编辑
摘要: IPC 指的是进程间通讯 之所以开启子进程 ,肯定需要他帮我们完成任务,很多情况下,需要将数据返回给父进程。 然而进程内存是物理隔离的 解决方案: 1.将共享数据放在文件中,就是慢 2.管道 subprocess 中那个管道只能单向通讯,必须有父子关系 3.共享一块内存区域 得操作系统帮你分配,速度 阅读全文
posted @ 2018-11-09 19:00 msjaxuexi 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 什么时候用锁? 当多进程同时读写同一份数据,数据可能被破坏 例如:第一个进程写了一个中文字符的一个字节,cpu就切到另外一个进程,另一个今晨也写了一个中文字符的一个字节。 最后文件解码失败 问题之所以出现是因为并发无法控制顺序。 目前可以使用join 来将所有进程的并发改成串行。 锁与join 的区 阅读全文
posted @ 2018-11-09 18:54 msjaxuexi 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 守护进程:a守护b b如果死了,a也会跟着死了,一般守护的对象是父进程。 使用方法是daemon的属性改为True。这样就会使得子进程是父进程的守护进程。 执行效果: 阅读全文
posted @ 2018-11-09 18:51 msjaxuexi 阅读(143) 评论(0) 推荐(0) 编辑