在 Swoole4 中可以使用 channel 实现协程间的通信、依赖管理、协程同步。 简单来说,WaitGroup 就是使用 channel 的机制,让主协程等待所有子协程结束后才退出的功能。 您的浏览器不支持 video 标签。 Course http://www.yzmedu.com/lear ...
分类:
其他好文 时间:
2019-08-28 13:19:03
阅读次数:
195
多线程补充以及协程 1.线程队列 线程队列用法与进程队列一样 2.事件 3.协程 ? 一般在工作中我们都是进程+线程+协程的方式来实现并发,以达到最好的并发效果,如果是4核的cpu,一般起5个进程,每个进程中20个线程(5倍cpu数量),每个线程可以起500个协程,大规模爬取页面的时候,等待网络延迟 ...
分类:
编程语言 时间:
2019-08-27 22:55:35
阅读次数:
77
线程queue、事件event及协程 线程queue 多线程抢占资源,让其保持串行的两种方式: ? 1、互斥锁 ? 2、队列 线程队列分为以下三种: 1、Queue(先进先出) 2、LifoQueue(后进先出) 3、PriorityQueue(优先级队列) 事件event 开启两个线程,一个线程运 ...
分类:
编程语言 时间:
2019-08-27 19:35:27
阅读次数:
152
[TOC] 1. 线程队列 1.1 先进先出(FIFO) 1.2 后进先出(LIFO)堆栈 1.3 优先级队列 面试题:用列表实现队列和堆栈 2. 事件event ? 开启两个线程,一个线程运行到中间的某个阶段,触发另一个线程执行。两个线程增加了耦合性。 如果程序中的其他线程需要通过判断某个线程的状 ...
分类:
编程语言 时间:
2019-08-27 18:58:32
阅读次数:
96
线程队列 FIFO队列 LIFO 栈 优先级队列 事件Event 并发的执行某个任务 .多线程多进程,几乎同时执行. 一个线程执行到中间时通知另一个线程开始执行. 属性 第一版没用 Event 第2版用了 Event 协程的初识 一个线程实现并发. 并发,并行,串行: 串行: 多个任务执行时,第一个 ...
分类:
其他好文 时间:
2019-08-26 22:43:43
阅读次数:
115
分析 分析网站寻找需要的网址 用谷歌浏览器摁F12打开开发者工具,然后打开斗鱼颜值分类的页面,如图: 在里面的请求中,最后发现它是以ajax加载的数据,数据格式为json,如图: 圈住的部分是我们需要的数据,然后复制它的网址为https://www.douyu.com/gapi/rknc/direc ...
分类:
编程语言 时间:
2019-08-26 18:03:32
阅读次数:
105
使用yield完成多任务 使用greenlet完成多任务 如果没有安装,则 pip install greenlet 使用gevent完成多任务 首先使用 pip install gevent 进行安装 gevent是对greenlet的再次封装,使用起来更加简便,当有耗时操作时会自动切换到其他协程 ...
分类:
编程语言 时间:
2019-08-26 16:49:24
阅读次数:
101
协程:所与要的线程:单线程,方式:同步,实现:异步程序级别:函数,实现机制:事件循环+协程 应用场景:io密集任务 协程 那yield from通常用在什么地方呢?在协程中,只要是和IO任务类似的、耗费时间的任务都需要使用yield from来进行中断,达到异步功能! @asyncio.corout ...
分类:
编程语言 时间:
2019-08-26 14:44:04
阅读次数:
93
协程:在一个线程内指定切换 协程+异步IO aiohttp asyncio 模块 封装http数据包 异步IO """ 可以实现并发 但是,请求发送出去后和返回之前,中间时期进程空闲 编写方式: - 直接返回处理 - 通过回调函数处理 """ ########### 编写方式一 ########## ...
分类:
系统相关 时间:
2019-08-25 01:00:39
阅读次数:
148
进程(Process) 1)进程就是正在运行的程序,它是操作系统中,资源分配的最小单位 (1)资源分配:分配的是cpu和内存等物理资源 (2)进程号是进程的唯一标识 2)同一个程序执行两次之后是两个进程 3)进程和进程之间的关系: 数据彼此隔离,通过socket通信 获取进程id 进程的基本用法 带 ...
分类:
编程语言 时间:
2019-08-24 16:52:55
阅读次数:
105