摘要:
死锁问题 对同一把锁多次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)

浙公网安备 33010602011771号