上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 38 下一页
摘要: #asyncio 没有提供http协议的接口 aiohttp import asyncio import socket from urllib.parse import urlparse async def get_url(url): #通过socket请求html url = urlparse(url) host = url.netloc path = ur... 阅读全文
posted @ 2018-04-24 22:11 Erick-LONG 阅读(137) 评论(0) 推荐(0) 编辑
摘要: #使用多线程:在协程中集成阻塞io import asyncio from concurrent.futures import ThreadPoolExecutor import socket from urllib.parse import urlparse def get_url(url): #通过socket请求html url = urlparse(url) ... 阅读全文
posted @ 2018-04-24 21:49 Erick-LONG 阅读(428) 评论(0) 推荐(0) 编辑
摘要: event_loop 事件循环:程序开启一个无限循环,把一些函数注册到事件循环上,当满足事件发生的时候,调用相应的协程函数 coroutine 协程:协程对象,指一个使用async关键字定义的函数,它的调用不会立即执行函数,而是会返回一个协程对象。协程对象需要注册到事件循环,由事件循环调用。 tas 阅读全文
posted @ 2018-04-24 17:46 Erick-LONG 阅读(251) 评论(0) 推荐(0) 编辑
摘要: #python为了将语义变得更加明确,就引入了async和await关键词用于定义原生的协程 # async def downloader(url): # return "xxxx" import types @types.coroutine def downloader(url): yield "xxx" async def download_url(url): #... 阅读全文
posted @ 2018-04-24 14:31 Erick-LONG 阅读(269) 评论(0) 推荐(0) 编辑
摘要: #1. epoll并不代表一定比select好 # 在并发高的情况下,连接活跃度不是很高, epoll比select # 并发性不高,同时连接很活跃, select比epoll好 #通过非阻塞io实现http请求 # select + 回调 + 事件循环 # 并发性高 # 使用单线程 import socket from urllib.parse import urlparse from ... 阅读全文
posted @ 2018-04-24 07:35 Erick-LONG 阅读(1223) 评论(0) 推荐(0) 编辑
摘要: import time from multiprocessing import Process, Queue, Pool, Manager, Pipe # def producer(queue): # queue.put("a") # time.sleep(2) # # def consumer(queue): # time.sleep(2) # data =... 阅读全文
posted @ 2018-04-23 23:01 Erick-LONG 阅读(142) 评论(0) 推荐(0) 编辑
摘要: # import os # #fork只能用于linux/unix中 # pid = os.fork() # print("bobby") # if pid == 0: # print('子进程 {} ,父进程是: {}.' .format(os.getpid(), os.getppid())) # else: # print('我是父进程:{}.'.format(pid)) imp... 阅读全文
posted @ 2018-04-23 22:49 Erick-LONG 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 多进程 阅读全文
posted @ 2018-04-23 16:29 Erick-LONG 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 线程间通信 -Queue 线程锁,lock和Rlock 条件变量-线程间同步 Semaphore 是用于控制进入数量的锁 阅读全文
posted @ 2018-04-23 08:00 Erick-LONG 阅读(280) 评论(0) 推荐(0) 编辑
摘要: #500G, 特殊 一行 def myreadlines(f, newline): buf = "" while True: while newline in buf: pos = buf.index(newline) yield buf[:pos] buf = buf[pos + len(newline):] chunk = f.re... 阅读全文
posted @ 2018-04-23 06:51 Erick-LONG 阅读(115) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 38 下一页