随笔分类 -  多进程与多线程

摘要:#coding=utf-8 from multiprocessing import Pool import os, time, random def run_task(name): print 'Task %s (pid = %s) is running...' % (name, os.getpid()) time.sleep(random.random() * 5) ... 阅读全文
posted @ 2018-11-19 11:47 道高一尺 阅读(396) 评论(0) 推荐(0) 编辑
摘要:1 # 多线程爬虫 2 # map函数的使用 3 # from multiprocessing.dummy import Pool 4 # pool=Pool(4) 5 # results = pool.map(爬取函数,网址列表) 6 # 实例演示: 7 from multiprocessing.dummy import Pool as ThreadPool 8 import ... 阅读全文
posted @ 2017-06-25 22:31 道高一尺 阅读(248) 评论(0) 推荐(0) 编辑
摘要:1 # 使用multiprocessing模块创建多进程 2 # multiprcessing模块提供了一个Process类来描述一个进程对象. 3 # 创建子进程时,只需要传入一个执行函数和函数的参数,即可完成一个process实例的创建 4 # 用start()方法启动进程 5 # 用join()方法实现进程间的同步. 6 import os 7 from multiproce... 阅读全文
posted @ 2017-06-25 15:27 道高一尺 阅读(313) 评论(0) 推荐(0) 编辑
摘要:Pool类 在使用Python进行系统管理时,特别是同时操作多个文件目录或者远程控制多台主机,并行操作可以节约大量的时间。如果操作的对象数目不大时,还可以直接使用Process类动态的生成多个进程,十几个还好,但是如果上百个甚至更多,那手动去限制进程数量就显得特别的繁琐,此时进程池就派上用场了。 P 阅读全文
posted @ 2017-05-20 22:10 道高一尺 阅读(635) 评论(0) 推荐(0) 编辑
摘要:出于对自己对多进程和多线程概念理解的怀疑,便花时间深入学习了一下。我的目的是将一个生动的围绕CPU运行的动作模型描述出来。我们先看专业书上是怎么解释的——进程是资源分配的最小单位,线程是CPU调度的最小单位——。只要能把这句话理解了,那也就对多进程与多线程理解的差不多了。 我们来看一下操作系统是怎么 阅读全文
posted @ 2017-05-20 21:59 道高一尺 阅读(335) 评论(0) 推荐(0) 编辑
摘要:import threading #第一步,定义需要多线程运行的函数 def test(i): print(1) list1 = []#创建存放多线程的列表 #第二步,生成。分别建立多个线程,a,b同时执行一个相同的任务 for i in range(10): th = threading.Thread(target = test,args=[i])#这里的th就是生成的多... 阅读全文
posted @ 2017-05-20 19:29 道高一尺 阅读(172) 评论(0) 推荐(0) 编辑
摘要:一个程序可以理解为一个进程,这个进程有其代号,可以依据这个代号将其杀死。 一个进程肯定有且只有一个主线程,他可以有很多子线程。 运行一个任务如果可以有许多子线程同时去做,当然会提高效率。 但是,在python中,多线程其实不是严格意义上的多线程。 因为,python有一个全局锁的概念,它保证在某一个 阅读全文
posted @ 2017-05-20 18:59 道高一尺 阅读(192) 评论(0) 推荐(0) 编辑