随笔分类 - part51 并发编程
摘要:一、为什么要引入并发编程 场景一:一个网络爬虫,按顺序爬花了一个小时,采用并发下载减少到20分钟 场景二:一个APP应用,优化前每次打开页面需要3秒,采用异步编发提升到每次200毫秒 引入并发,就是为了提升程序运行速度 二、有哪些程序提速的方法 三、Python对并发编程的支持 ①多线程:threa
阅读全文
摘要:无论是开进程还是开线程都消耗资源,开线程比开进程消耗的资源要小 1、池:为了减缓计算机硬件的压力,避免计算机硬件设备崩溃。虽然减轻了计算机的压力,但是一定程度上降低了持续的效率 2、为什么要用“池”: 池子使用来限制并发的任务数目,限制我们的计算机在一个自己可承受的范围内去并发地执行任务 3、进程池
阅读全文
摘要:一、GIL全局解释器锁 global interpreter lock 1、GIL是一个互斥锁:保证数据的安全(以牺牲效率来换取数据的安全),阻止同一个进程内多个线程同时执行(不能并行但是能够实现并发) 2、GIL全局解释器存在的原因是因为Cpython解释器的内存管理不是线程安全的 3、CIL是一
阅读全文
摘要:一、线程理论 线程:是计算机中可以被cpu调度的最小单元。 进程:是计算机资源分配的最小单元,进程为线程提供资源。 一个进程汇总可以有多个线程,同一个进程中的线程可以共享此进程中的资源。 在python中,如果执行一个程序,默认情况下会创建一个进程,在一个进程中又会创建一个线程,线程是真正工作的单位
阅读全文
摘要:一、进程理论 1、程序和进程 程序:一堆代码 进程:正在运行的程序 进程是一个抽象的概念,每一个进程都有它自己独立的内存空间 2、同步和异步:针对任务的提交方式 同步:提交任务之后,原地等待任务的返回结果,期间不做任何事(叫人吃饭,一直等待) 异步:提交任务之后,不等待任务的返回结果,执行运行下一行
阅读全文