摘要: 死锁问题 对同一把锁多次acquire将导致死锁,可以给acquire加上超时(timeout)来保证线程不被卡死。 出现死锁的另一种情况: 一个共享资源,要访问必须同时具备多把锁,但是这些锁被不同的进程或者线程所持有,就会导致相互等待对方释放,从而程序就卡死了。 比如吃饭要碗和筷子两把锁,A抢了筷 阅读全文
posted @ 2019-07-06 19:11 Firekeeper 阅读(223) 评论(0) 推荐(0)
摘要: 同步异步 阻塞非阻塞 阻塞 非阻塞 指的是程序的运行状态 阻塞:当程序执行过程中遇到了IO操作,在执行IO操作时,程序无法继续执行其他代码,称为阻塞。 非阻塞:程序在正常运行没有遇到IO操作,或者通过某种方式使程序即使遇到了也不会停在原地,还可以执行其他操作,以提高CPU的占用率。 同步 异步 指的 阅读全文
posted @ 2019-07-06 11:18 Firekeeper 阅读(464) 评论(0) 推荐(0)
摘要: 进程池和线程池 什么是进程/线程池 池表示一个容器,本质上就是一个存储进程或线程的列表 池子中存储线程还是进程? 如果IO密集型任务使用线程池,如果是计算密集型任务就使用进程池 为什么需要进程/线程池? 在很多情况下需要控制进程或线程的数量在一个合理的范围,例如TCP程序中,一个客户端对应一个线程, 阅读全文
posted @ 2019-07-06 10:53 Firekeeper 阅读(211) 评论(0) 推荐(0)
摘要: GIL 即全局解释器锁,是一个互斥锁,防止多个线程在同一时间执行python代码,因为在一个python进程中,不仅有主线程而且还有该主线程开启的子线程,还有解释器开启的垃圾回收机等解释器级别的线程。因为所有的代码都是共享的,所以垃圾回收线程也可能同时访问到解释器的代码去执行,所以解决这一问题的方法 阅读全文
posted @ 2019-07-06 10:41 Firekeeper 阅读(297) 评论(0) 推荐(0)
摘要: 并发编程 多线程 线程就是一条流水线的工作过程的总称 线程是cpu的基本执行单位 特点: 1. 每个进程都会有一个默认的线程 2. 每个进程可以存在多个线程 3. 同一进程中的所有线程之间数据是共享的 4. 创建线程的开销远比创建进程小的多 主线程和子线程的区别: 1. 线程之间没有父子之分,是平等 阅读全文
posted @ 2019-07-04 19:09 Firekeeper 阅读(151) 评论(0) 推荐(0)
摘要: dumps是将dict转化成str格式,loads是将str转化成dict格式。 dump和load也是类似的功能,只是与文件操作结合起来了。 In [1]: import json In [2]: a = {'name': 'wang', 'age': 29} In [3]: b = json.d 阅读全文
posted @ 2019-07-04 16:52 Firekeeper 阅读(3102) 评论(0) 推荐(0)
摘要: 实现多个客户端同时接入server端,并且可以同时向客户端发送信息 server端 client端 需要注意的是:1. 根据TCP内部算法,发送端发送内容为空的时候,不会发送,但是会往下执行;接收端则会一直卡在recv处;所以需要进行一个是否为空的判断。 2. 客户端的listen(5),参数(5) 阅读全文
posted @ 2019-07-03 18:46 Firekeeper 阅读(1093) 评论(0) 推荐(0)
摘要: EOF的意思为:end of file 这个错误会在多进程中出现,是因为子进程中不能出现input,只能在父进程中使用。 结果: 阅读全文
posted @ 2019-07-03 18:34 Firekeeper 阅读(12625) 评论(1) 推荐(0)
摘要: 并发编程 多进程 多道技术 实现原理: 1.空间复用 ​ 统一时间,加载多个任务到内存中,多个进程之间内存区域需要相互隔离,这种隔离是物理层面的隔离,其目的是为了保证数安全 2.时间复用 ​ 指的是,操作系统会在多个进程之间做切换执行 ​ 切换任务的两种情况 ​ 1.当一个进程遇到了IO操作 时会自 阅读全文
posted @ 2019-07-02 21:38 Firekeeper 阅读(191) 评论(0) 推荐(0)
摘要: 粘包问题 只有TCP有粘包现象,UDP不会粘包。 假设客户端分别发送了两个数据包D1和D2给服务端,由于服务端一次读取到的字节数是不确定的,故可能存在以下4种情况。 1. 服务端分两次读取到了两个独立的数据包,分别是D1和D2,没有粘包和拆包; 2. 服务端一次接收到了两个数据包,D1和D2粘合在一 阅读全文
posted @ 2019-07-01 20:19 Firekeeper 阅读(235) 评论(0) 推荐(0)