一、进程和线程的对比
进程:系统资源调度和分配的基本单元,进程间通信 ICP
线程:cpu 进行调度的基本单元,共享进程的内存/数据和资源
二、线程安全
同一个对象在一个进程还没有被更新完的时候就被其他线程进行修改了就是线程不安全的
2.1 Python 哪些 *** 作时线程安全原子 *** 作就是安全的
读数据是线程安全的,写数据才需要考虑线程安全问题
三、保证线程安全的方式
添加锁,保证同一时刻只有一个线程使用这个锁
信号量:控制同一时刻多个线程访问同一资源的线程数
四、进程间通信方式
Inter-Process Communication 进程间传递信号或数据
管道/匿名管道/有名管道 (Pipe)
信号(Signal): 比如用户使用Ctrl + C 产生终止信号
消息队列(Mesage): 比如rabbitMQ,ckafka 进行进程间通信
共享内存(share memory)
套接字(socket)
五、如何使用多线程/多进程
ThreadPoolExecutor (线程池) 多线程模块
ProcessPoolExecutor (进程池) 【底层使用os.fork()系统调用】
python 有GIL,对于CPU密集型的程序,使用多线程不仅不能加快响应速度,反而会降低响应速度
我们通常通过多进程的方式进行解决
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)