随笔分类 -  PYTHON高级编程 并发专题

摘要:https://www.cnblogs.com/wongbingming/p/9124142.html 在实战中,将会用到以下知识点: 多线程的基本使用 Queue消息队列的使用 Redis的基本使用 asyncio的使用 . 动态添加协程# 在实战之前,我们要先了解下在asyncio中如何将协程态 阅读全文
posted @ 2020-05-10 11:27 秋华 编辑
摘要:. 本文目录# 协程中的并发 协程中的嵌套 协程中的状态 gather与wait . 协程中的并发# 协程的并发,和线程一样。举个例子来说,就好像 一个人同时吃三个馒头,咬了第一个馒头一口,就得等这口咽下去,才能去啃第其他两个馒头。就这样交替换着吃。 asyncio实现并发,就需要多个协程来完成任务 阅读全文
posted @ 2020-05-10 11:20 秋华 编辑
摘要:https://www.cnblogs.com/wongbingming/p/9095243.html . 本文目录# 如何定义/创建协程 asyncio的几个概念 学习协程是如何工作的 await与yield对比 绑定回调函数 . 如何定义/创建协程# 只要在一个函数前面加上 async 关键字, 阅读全文
posted @ 2020-05-10 10:54 秋华 编辑
摘要:相关概念: 协程:一个线程并发的处理任务 串行:一个线程执行一个任务,执行完毕之后,执行下一个任务 并行:多个CPU执行多个任务,4个CPU执行4个任务 并发:一个CPU执行多个任务,看起来像是同时执行 并发真正的核心/本质:切换并且保持状态 多线程的并发:3个线程处理10个任务,如果线程1处理的这 阅读全文
posted @ 2020-04-28 19:24 秋华 编辑
摘要:1. 背景 理论上来说:单个进程的多线程可以利用多核. 但是,开发Cpython解释器的程序员,给进入解释器的线程加了锁. 2. 加锁的原因: 当时都是单核时代,而且cpu价格非常贵. 如果不加全局解释器锁, 开发Cpython解释器的程序员就会在源码内部各种主动加锁,解锁,非常麻烦,各种死锁现象等 阅读全文
posted @ 2020-04-28 19:21 秋华 编辑
摘要:什么是线程 标准描述开启一个进程:开启一个进程:进程会在内存中开辟一个进程空间,将主进程的资料数据全部复制一份,线程会执行里面的代码. ***进程是资源单位, 线程是执行单位;是操作系统调度的最小单元,是进程中的实际运作单位. 线程vs进程 开启进程的开销非常大,比开启线程的开销大很多. 开启线程的 阅读全文
posted @ 2020-04-28 19:18 秋华 编辑
摘要:概念 串行:所有的任务一个一个的完成. 并发:一个cpu完成多个任务.看起来像是同时完成. 并行:多个cpu执行多个任务,真正的同时完成. 阻塞:cpu遇到IO就是阻塞. 非阻塞:没有IO,就叫非阻塞. 程序:一堆静态文件 进程:一个正在执行的程序任务,一个程序能否开启多个进程 进程的创建 一个子进 阅读全文
posted @ 2020-04-28 19:15 秋华 编辑
摘要:出租车队运营仿真 创建几辆出租车,每辆车会拉几个乘客,然后回家。出租车首先驶离车库,四处徘徊,寻找乘客;拉到乘客后,行程开始;乘客下车后,继续四处徘徊。 程序解释 程序的输出示例: 创建 3 辆出租车的输出示例。-s 3 参数设置随机数生成器的种子,这样在调试和演示时可以重复运行程序,输出相同的结果 阅读全文
posted @ 2020-04-17 16:51 秋华 编辑
摘要:一、yield python中yield的用法很像return,都是提供一个返回值,但是yield和return的最大区别在于,return一旦返回,则代码段执行结束,但是yield在返回值以后,会交出CUP的使用权,代码段并没有直接结束,而是在此处中断。 当调用send()或者next()方法之后 阅读全文
posted @ 2020-04-17 16:46 秋华 编辑
摘要:一、基础原理 二、基本函数 三、爬虫实现 四、web服务器与客户端实现 阅读全文
posted @ 2020-04-10 16:39 秋华 编辑
摘要:文档资源 http://sdiehl.github.io/gevent-tutorial/ 一、协程实现 线程和协程 既然我们上面也说了,协程也被称为微线程,下面对比一下协程和线程: 线程之间需要上下文切换成本相对协程来说是比较高的,尤其在开启线程较多时,但协程的切换成本非常低。 同样的线程的切换更 阅读全文
posted @ 2020-04-10 16:33 秋华 编辑
摘要:一、多进程实现 multiprocess.process模块 process类 Process([group [, target [, name [, args [, kwargs]]]]]),由该类实例化得到的对象,表示一个子进程中的任务(尚未启动) 强调: 1. 需要使用关键字的方式来指定参数 阅读全文
posted @ 2020-04-10 16:31 秋华 编辑
摘要:一 多线程实现 线程模块 - 多线程主要的内容:直接进行多线程操作,线程同步,带队列的多线程; Python3 通过两个标准库 _thread 和 threading 提供对线程的支持。 _thread 提供了低级别的、原始的线程以及一个简单的锁,它相比于 threading 模块的功能还是比较有限 阅读全文
posted @ 2020-04-10 16:30 秋华 编辑
摘要:一、线程 1.概念 线程是程序执行流的最小执行单位,是行程中的实际运作单位。 进程是一个动态的过程,是一个活动的实体。简单来说,一个应用程序的运行就可以被看做是一个进程,而线程,是运行中的实际的任务执行者。可以说,进程中包含了多个可以同时运行的线程。 2.特点 线程自己不拥有系统资源,只拥有一点儿在 阅读全文
posted @ 2020-04-10 16:19 秋华 编辑

点击右上角即可分享
微信分享提示