摘要:
多线程实现并发: 多进程实现并发: 缺点:无限的开进程线程,会导致服务端崩溃。 可用进程池线程池替代。 阅读全文
摘要:
from threading import Timer import random class Code: def __init__(self): self.make_cache() def make_cache(self,interval =15):#生成的验证码保存在cache里,过15s重新生成验证码,更新cache s... 阅读全文
摘要:
线程间互相等状态。 阅读全文
摘要:
信号量相当于一个锁锁着的房间里的多个床位,同一时间可以有多个线程获得信号量,而锁则只能被一个线程获得。 阅读全文
摘要:
Lock() 互斥锁会导致死锁,用RLock()递归锁代替。 递归锁:可以连续acquire多次,每acquire一次计数器+1(无论acquire的是哪个锁),只有计数为0才能被acquire 阅读全文
摘要:
GIL不是Python特性,是CPython解释器特性,因为CPython有垃圾回收机制。 GIL 本质是互斥锁,保护解释器安全。 保证线程安全,垃圾回收线程不会和其他线程一起运行。 多个线程不能实现真正并行,因为解释器GIL锁的原因(同一时间解释器只执行一个线程),但是,线程A取得GIL锁后可能因 阅读全文
摘要:
1、开进程的开销远大于开线程 1、其他线程都结束后,主线程才会结束,守护线程才会结束。即守护线程要等其他所有非守护线程结束后才会结束 2、其他线程都结束后,主线程才会结束,主进程才会结束,守护进程才会结束。貌似守护进程和守护线程是相同条件下结束。 阅读全文
摘要:
进程和线程模块下都有队列类。 线程队列: 进程队列: JoinableQueue示例: 阅读全文
摘要:
进程实现: 阅读全文