
python
文章平均质量分 86
魔法屋
这个作者很懒,什么都没留下…
展开
-
关于GIL的那些事情
GIL引发的思考关于GIL首先需要明确的一点是GIL并不是Python的特性,接下来我也不解释什么是GIL,自行查阅资料 Python语言和GIL没有半毛钱关系。仅仅是由于历史原因在Cpython虚拟机(解释器),难以移除GIL。1.并发和并行这个问题缘由于,多线程在GIL下不能实现并行。那么什么是并发,什么是并行。 1.并发:交替处理多个任务的能力。这么说,你在做事件A,当更紧急...原创 2018-08-09 20:56:13 · 178 阅读 · 0 评论 -
用户线程和内核线程
为什么多线程会用到多核复习一下线程和进程的区别: 最主要的点就是:进程是资源分配的最小单位,线程是CPU调度的最小单位。(一个是相当于一个容器,一个是具体被CPU操作的) 进程间资源不共享,而多个线程是共享同个进程分配的资源的。 由于线程分用户线程和内核线程。内核线程再调用的时候可以去不同的核心去操作。所以多线程是可以利用到多核的。Python 为什么IO密集型程序要使用多线程...原创 2018-08-09 19:19:50 · 296 阅读 · 0 评论 -
mongo 异步 读写分离
使用 AsyncIOMotorClient 异步库,进行读写分离。读:从数据库不停读数据存到队列,写: 从本地队列不停批量向数据库写数据。场景: 数据大的时候,你可以快速将A的数据导入到B中。可以提高数据插入效率,不必等待写完才读取下一批数据import asynciofrom custom_conf import MONGODB_URLfrom motor.motor_async...原创 2019-04-11 15:40:36 · 711 阅读 · 0 评论 -
获取requests http报文
在爬虫中,你发现你的模拟已经很完美了,但是还是拿不到预期数据。怎么办呢?你可以对比一下,网站的报文跟你爬虫发出去的报文是不是一致的。我们可以利用 httpbin 这个网站,先来看一下 requests 发出的 HTTP 报文默认的请求头是什么样子的。可以这样测试:import requestsurl = 'http://httpbin.org/get'r = requests.get ...原创 2019-04-03 16:46:48 · 1802 阅读 · 0 评论 -
将原始javascript对象转换为python字典
在抓取某些网站时,抓取到了javascript 对象,不符合Json 格式,不能使用json.loads 该如何处理?# fromjs_obj = '{x:1, y:2, z:3}'# topy_obj = {'x':1, 'y':2, 'z':3}demjsonpip install demjson 安装import demjson# fromjs_obj =...原创 2019-06-12 15:28:06 · 2800 阅读 · 0 评论 -
pyecharts 在地图上根据经纬度和量值,画出散点图/热力图
实现的功能: 将经纬度映射到地图上,查看每个经纬度附近的商家数量的分布情况。作图类型:地图+散点图,地图+热力图应用的类型: Geopy版本: python2+, pyhton3+pyecharts 文档:https://pyecharts.org/#/zh-cn/introECharts是一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器,底层...原创 2019-05-29 11:23:25 · 24973 阅读 · 20 评论