之前看到有人写过类似的代码,感觉有点累赘,其中登陆那些东西其实可以避免的
我把百度音乐的网页代码稍微分析了一下,如果要求不高,下载普通音质的歌曲是不需要登陆的(当然如果你用浏览器打开下载的话,普通音质也是要求登陆下载的)
看其代码发现,即使你没有登陆,其实下载链接也已经暴露出来了,只是用javascript阻止了你在浏览器中下载,
我下面写了一个下载的demo,顺便测试了一下多进程,批量下载...
分类:
编程语言 时间:
2014-12-29 12:06:23
阅读次数:
178
讲Python的Global Interpretor Lock的比较好的文章 耐心看完会有好多收获,我的收获就是 Python多线程 < Python单线程 < Python多进程 多进程请用python multiprocessing 参见PEP: 371 python2.6引入pyProcess...
分类:
其他好文 时间:
2014-10-04 16:17:16
阅读次数:
165
起因:最近需要从hbase中向 ES中导一批数据,使用multiprocessing 启动多个程序同时向ES导数据,可以大大提高效率,因为导数的任务是可以按照时间分割的。
令我十分不解的,multiprocessing 是如何实现任务的分发,以及结果的回传的。我希望能够把它的实现机制与操作系统的进程机制对应起来。
经过阅读代码,得出的结论如下:
1. 父进程作为整个任务的分发器,每个worker是一个子进程
2. 子进程和父进程之间通过管道通讯,包括任务的分发和结果的回传(2个【管道】) ,管道通过【信号量...
分类:
其他好文 时间:
2014-10-03 13:57:04
阅读次数:
284
最近看了下多进程。 一种接近底层的实现方法是使用?os.fork()方法,fork出子进程。但是这样做事有局限性的。比如windows的os模块里面没有 fork() 方法。 windows:。linux: ? 另外还有一个模块:subprocess。这...
分类:
编程语言 时间:
2014-09-21 17:26:11
阅读次数:
309
由于Python的线程有些限制,例如多线程不能充分利用多核CPU等问题,因此在Python中我们更倾向使用多进程。但在做不阻塞的异步UI等场景,我们也会使用多线程。本篇文章主要探讨Python多进程的问题。
Python在2.6引入了多进程的机制,并提供了丰富的组件及api以方便编写并发应用。multiprocessing包的组件Process, Queue, Pipe, Lock等组件提供了与多线程类似的功能。使用这些组件,可以方便地编写多进程并发程序。...
分类:
编程语言 时间:
2014-09-15 14:22:09
阅读次数:
256
import osimport threadingimport multiprocessing# worker functiondef worker(sign, lock): lock.acquire() print(sign, os.getpid()) lock.release(...
分类:
编程语言 时间:
2014-09-10 15:47:10
阅读次数:
258
import timefrom multiprocessing import Process,QueueMSG_QUEUE = Queue(5)def startA(msgQueue): while True: if msgQueue.empty() > 0: ...
分类:
编程语言 时间:
2014-09-01 13:50:53
阅读次数:
227
Python在2.6版本新引进了多进程机制
一、 简介
多进程在Python中是一个包,它支持使用和线程模块类似的API来创建进程。
多进程包支持本地和远程并发,并有高效的GIL锁机制。
因为这些原因,多进程模块允许程序员在指定机器上实现完整的多进程开发,无论是Unix还是Windows.
Warning:
这个包的某些功能要求在运行的OS上能实现共享信号量机制,
如果没有这个...
分类:
编程语言 时间:
2014-08-28 13:25:14
阅读次数:
332
import threadingfrom time import sleepfrom msalt_proxy.client import Clientdef f(t): print t cli=Client(t,'*',role='server') cli.sys.ping()from mul...
分类:
编程语言 时间:
2014-06-21 11:05:27
阅读次数:
251
简介
multiprocessing模块使用和threading包类似的API接口来产生多进程,multiprocessing包提供本地和远程的并发,通过使用subprocesses(子进程)代替threads(线程)有效的避开了GIL(Global Interpreter Lock)。由于这一点,multiprocessing模块允许程序充分的利用多处理器。可以跨平台使用,包括Unix和Win...
分类:
编程语言 时间:
2014-06-15 09:22:20
阅读次数:
375