Python中的协程大概经历了如下三个阶段: 1. 最初的生成器变形yield/send 2. 引入@asyncio.coroutine和yield from 3. 在最近的Python3.5版本中引入async/await关键字 一、生成器变形yield/send 像上面代码中的c就是一个生成器。 ...
分类:
编程语言 时间:
2019-03-07 16:13:53
阅读次数:
180
今天写代码的时候遇到了block_given?,查阅了一下语法书中并没有相关的知识点,于是翻阅微博及结合工作中的实际代码,整理如下: 一、“块”: ruby的块指的是什么? 是 do~end中间的那部分代码,这就是全部的块。它的形式有两种: 1、do ~ end中的多行代码(这种在多行代码时可读性更 ...
分类:
其他好文 时间:
2019-03-05 15:34:26
阅读次数:
860
背景:java知识比较宽泛,最好对每一类知识点进行分类总结,方便后面学习查看。该文主要用来总结多线程方面的知识点。 并发与并行的概念 并发性(concurrency)和并行性(parallel)是两个概念—— 并行指在同一时刻,有多条指令在多个处理器上同时执行; 并发指在同一时刻只能有一条指令执行, ...
分类:
编程语言 时间:
2019-03-05 09:41:50
阅读次数:
217
提交查询关键字的请求 这里重写父类的start_requests方法 ...
分类:
其他好文 时间:
2019-03-04 20:51:42
阅读次数:
159
1.Ajax 是典型的异步操作,通过 Generator 函数部署 Ajax 操作,可以用同步的方式表达 上面代码的main函数,就是通过 Ajax 操作获取数据。可以看到,除了多了一个yield,它几乎与同步操作的写法完全一样。注意,makeAjaxCall函数中的next方法,必须加上respo ...
分类:
其他好文 时间:
2019-03-03 11:06:15
阅读次数:
186
从生成器到协程 协程是指一个过程,这个过程与调用方协作,产出由调用方提供的值。生成器的调用方可以使用 .send(...)方法发送数据,发送的数据会成为yield表达式的值。因此,生成器可以作为协程使用。 从句法上看,生成器与协程都是包含yield关键字的函数。但是,在协程中,yield通常出现在表 ...
分类:
编程语言 时间:
2019-03-03 09:39:13
阅读次数:
184
allow_redirects=False的意义为拒绝默认的301/302重定向从而可以通过html.headers[‘Location’]拿到重定向的URL。 这是scrapy中解决问题方法1: 在yield里面加上dont_filter=True,解决了这个问题,dont_filter的意思是, ...
分类:
其他好文 时间:
2019-02-26 15:13:27
阅读次数:
622
13.1 事件循环asyncio包含各种特定系统实现的模块化事件循环传输和协议抽象对TCP、UDP、SSL、子进程、延时调用以及其他的具体支持模仿futures模块但适用于事件循环使用的Future类基于 yield from 的协议和任务,可以让你用顺序的方式编写并发代码必须使用一个将产生阻塞IO... ...
分类:
其他好文 时间:
2019-02-22 19:57:37
阅读次数:
230
在多线程并发编程的过程中,执行重排序有时候会造成错误的后果,比如一个线程在main线程中调用setFlag(true)的前边修改了某些程序配置项,而在t1线程里需要用到这些配置项,所以会造成配置缺失的错误。但是java给我们提供了一些抑制指令重排序的方式。 1.同步代码抑制指令重排序 将需要抑制指令 ...
分类:
编程语言 时间:
2019-02-21 00:33:56
阅读次数:
205
协程: 协程:是单线程下的并发,又称微线程,纤程。英文名Coroutine。协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的。 需要强调的是: 对比操作系统控制线程的切换,用户在单线程内控制协程的切换 优点如下: 缺点如下: 总结协程特点: Greenlet模块 如果我们在单个线程内有 ...
分类:
其他好文 时间:
2019-02-20 11:17:08
阅读次数:
166