随笔分类 -  并发编程

摘要:一、进程/线程池 1、进程池 (1)什么是进程池 如果需要创建的子进程数量不大,可以直接利用multiprocess中的Process来创建。但是当需要创建上百个或上千个,手动创建就较为繁琐,这时就可以利用进程池来创建,即current.futures模块中的ProcessPoolExecutor 阅读全文
posted @ 2018-09-29 20:51 holy_pie 阅读(237) 评论(0) 推荐(0)
摘要:一、GIL全局解释器锁 1、什么是全局解释器锁 GIL本质就是一把互斥锁,相当于执行权限,每个进程内都会存在一把GIL,同一进程内的多个线程,必须抢到GIL之后才能使用Cpython解释器来执行自己的代码,即同一进程下的多个线程无法实现并行,但是可以实现并发。 例如下面多个线程的执行过程: 多个线程 阅读全文
posted @ 2018-09-28 15:06 holy_pie 阅读(159) 评论(0) 推荐(0)
摘要:一、什么是线程 进程其实一个资源单位,而进程内的线程才是cpu上的执行单位,线程其实指的就是代码的执行过程 二、进程和线程的区别 1. 同一进程下的多个线程共享该进程内的资源2. 创建线程的开销要远远小于进程 三、利用Thread类开启线程的两种方式 1、Thread类 2、开启线程 from mu 阅读全文
posted @ 2018-09-25 17:02 holy_pie 阅读(304) 评论(0) 推荐(0)
摘要:一、生产者与消费者模型 1、什么是生产者消费者模型 (1)生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列 阅读全文
posted @ 2018-09-23 17:09 holy_pie 阅读(243) 评论(0) 推荐(0)
摘要:一、multiprocessing模块 1、multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似。 2、multiprocessing模块的功能众多:支持子进程、通信和共享数据、执行不同形式的同步,提供了Pr 阅读全文
posted @ 2018-09-22 00:18 holy_pie 阅读(467) 评论(0) 推荐(0)
摘要:一、什么是进程 进程是一个正在执行/运行的程序,进程是用来描述程序执行状态的虚拟概念 二、进程和程序的区别 进程:程序的执行的过程 程序:一段代码 注意:同一个程序每执行一次就是一个进程 三、操作系统 1、什么是操作系统 操作系统是一个协调/管理/控制计算机硬件资源和应用程序软件资源的一段控制程序 阅读全文
posted @ 2018-09-21 20:46 holy_pie 阅读(185) 评论(0) 推荐(0)