会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
Apollo
Powered by
博客园
|
|
新随笔
|
|
|
管理
2019年2月4日
python并发编程知识点总结
摘要: 1.到底什么是线程?什么是进程? Python自己没有这玩意,Python中调用的操作系统的线程和进程. 2.Python多线程情况下: 计算密集型操作:效率低,Python内置的一个全局解释器锁,锁的作用就是保证同一时刻一个进程中只有一个线程可以被cpu调度,多线程无法利用多核优势,可以通过多进程
阅读全文
posted @ 2019-02-04 11:36 阿波罗Apollo
阅读(344)
评论(0)
推荐(0)
编辑
协程+IO切换实现并发
摘要: ``` from gevent import monkey # 以后代码中遇到IO都会自动执行greenlet的switch进行切换 monkey.patch_all() import requests import gevent def get_page1(url): ret = requests.get(url) print(url,ret.content) def g...
阅读全文
posted @ 2019-02-04 11:31 阿波罗Apollo
阅读(249)
评论(0)
推荐(0)
编辑
python单线程解决并发
摘要: 1.单线程解决并发 方式一 方式二
阅读全文
posted @ 2019-02-04 11:30 阿波罗Apollo
阅读(248)
评论(0)
推荐(0)
编辑
不改变代码情况下,让列表增加方法
摘要: 原代码 修改后代码
阅读全文
posted @ 2019-02-04 11:11 阿波罗Apollo
阅读(181)
评论(0)
推荐(0)
编辑
python基于yield实现协程
摘要: ``` def f1(): print(11) yield print(22) yield print(33) def f2(): print(55) yield print(66) yield print(77) v1 = f1() v2 = f2() next(v1) # v1.send(None) next...
阅读全文
posted @ 2019-02-04 11:03 阿波罗Apollo
阅读(144)
评论(0)
推荐(0)
编辑
携程greenlet模块使用
摘要: ``` import greenlet def f1(): print(11) gr2.switch() print(22) gr2.switch() def f2(): print(33) gr1.switch() print(44) # 协程 gr1 gr1 = greenlet.greenlet(f1) # 协程 gr2 g...
阅读全文
posted @ 2019-02-04 11:00 阿波罗Apollo
阅读(121)
评论(0)
推荐(0)
编辑
如何让socket编程非阻塞?
摘要: ``` import socket # 创建socket client = socket.socket() # 将原来阻塞的位置变成非阻塞(报错) client.setblocking(False) # 百度创建连接: 阻塞 try: # 执行了但报错了 client.connect(('www.baidu.com',80)) except BlockingIOError as ...
阅读全文
posted @ 2019-02-04 10:33 阿波罗Apollo
阅读(339)
评论(0)
推荐(0)
编辑
分别用request和socket给百多发送请求
摘要: 1.方式1 2.方式2
阅读全文
posted @ 2019-02-04 10:24 阿波罗Apollo
阅读(225)
评论(0)
推荐(0)
编辑
python线程池应用场景-爬虫
摘要: ``` import requests from bs4 import BeautifulSoup from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor def task(url): print(url) r1 = requests.get( url=url, ...
阅读全文
posted @ 2019-02-04 10:14 阿波罗Apollo
阅读(358)
评论(0)
推荐(0)
编辑
python线程池/进程池创建
摘要: 进程池 线程池
阅读全文
posted @ 2019-02-04 10:10 阿波罗Apollo
阅读(278)
评论(0)
推荐(0)
编辑
python进程锁
摘要: 和线程锁一样,对照线程锁学习即可
阅读全文
posted @ 2019-02-04 10:05 阿波罗Apollo
阅读(165)
评论(0)
推荐(0)
编辑
进程间实现数据共享的三种方式
摘要: 1.Queue: linux: windows: 2.Manager:( ) Linux: windows: 3.其他电脑
阅读全文
posted @ 2019-02-04 10:04 阿波罗Apollo
阅读(1956)
评论(0)
推荐(0)
编辑
python创建进程的两种方式
摘要: 1.方式1 2.方式2
阅读全文
posted @ 2019-02-04 09:55 阿波罗Apollo
阅读(157)
评论(0)
推荐(0)
编辑
python线程间数据共享(示例演示)
摘要: ``` import threading data_list = [] def task(arg): data_list.append(arg) print(data_list) def run(): for i in range(10): p = threading.Thread(target=t
阅读全文
posted @ 2019-02-04 09:47 阿波罗Apollo
阅读(347)
评论(0)
推荐(0)
编辑
python进程间数据不共享(示例演示)
摘要: ``` import multiprocessing data_list = [] def task(arg): data_list.append(arg) print(data_list) def run(): for i in range(10): p = multiprocessing.Process(target=task, args=(i...
阅读全文
posted @ 2019-02-04 09:46 阿波罗Apollo
阅读(115)
评论(0)
推荐(0)
编辑
python生产者消费者模型
摘要: ``` import time import queue import threading q = queue.Queue() # 线程安全 def producer(id): """生产者""" while True: time.sleep(2) q.put('包子') print('厨师%s 生产了一个包子' % id) ...
阅读全文
posted @ 2019-02-04 09:41 阿波罗Apollo
阅读(153)
评论(0)
推荐(0)
编辑