
38Python进程和线程(三)
48N6E
这个作者很懒,什么都没留下…
展开
-
2019/12/25 04-barrier、semaphore和GIL
信号量用处很大,但是常用的就是event和lock,信号量在有些地方必须使用,信号量跟锁有些像,锁lock(用了一个再要就不行了,所获取不到了,因为用了一次就需要release一次,没有release,就获取不到,要么等会,要么就一直等,)信号量内部会维护一个倒计数器,每一次获取这个锁的时候,获取一次,往下减1,当acquire方法,再次调用的时候,会发现计数为0,就阻塞请求的线程当有线程还...原创 2019-12-26 23:27:09 · 230 阅读 · 0 评论 -
2019/12/24 03-Barrier
barrier可以理解为是屏障,是阻碍你前行的3.2引入的新功能,parties参与方,action做什么动作等待数,要几个人参与,等待几个人类似赛车,开始都在起点等,等都到齐了再跑,需要等到所有参赛方都到齐了才开始,拦起来,等待所有的参与方到齐,这就是barrierwait不超时启动一个线程,但是要求参与方是三个等到条件成熟才能结束改成2就是2个参与方条件满足这一句就...原创 2019-12-25 17:44:36 · 318 阅读 · 0 评论 -
2019/12/23 02-RLock和Condition
锁是非常重要的技术,并发的时候,都在争抢同一个资源的时候,这个时候就需要考虑是否使用锁,锁有好处和坏处,有了锁,并发的运行效率降低,耗时降低,但没有锁就得不到你想要的结果用锁也是有一些原则的,尽量少的使用锁,在必须使用的地方再使用,尽量短的使用锁,锁里面的语句能少则少(比如高速公路过关卡,收费站人员故意拖慢时间,后面等的时间就增加了)所以争抢一个资源,就需要尽量快的去使用,然后把锁释放掉...原创 2019-12-24 22:23:54 · 295 阅读 · 0 评论 -
2019/12/22 01-Lock锁
凡是存在共享资源争抢的地方都可以使用锁,从而保证只有一个使用者可以完全使用这个资源。当你抢到资源,只为你所用,其他人不可用的时候,就要使用锁,(比如打饭的其他人可以看到你在选什么资源,这是比较松的锁,如果连看都不能看就是比较严格的锁)看可以,但是修改不行一旦抢到资源,肯定不轻易让给别人使用,要引入锁,锁是为了解决在并发过程中解决一个人挤到窗口拿到属于自己的饭,一般情况保障当下一个资源只能有一个...原创 2019-12-23 22:07:31 · 195 阅读 · 0 评论