概念:进程就是操作系统中执行的一个程序,一个进程还可以拥有多个并发的执行线索,简单的说就是拥有多个
可以获得CPU调度的执行单元,这就是所谓的线程。
""" 单进程 """ from multiprocessing import Process from os import getpid from random import randint from time import time, sleep def download_task(filename): print(‘启动下载进程,进程号[%d].‘ % getpid()) print(‘开始下载%s...‘ % filename) time_to_download = randint(5, 10) sleep(time_to_download) print(‘%s下载完成! 耗费了%d秒‘ % (filename, time_to_download)) def main(): start = time() p1 = Process(target=download_task, args=(‘Python从入门到住院.pdf‘, )) p1.start() p2 = Process(target=download_task, args=(‘Peking Hot.avi‘, )) p2.start() p1.join() p2.join() end = time() print(‘总共耗费了%.2f秒.‘ % (end - start)) if __name__ == ‘__main__‘: main()
此处为以上代码运行一次的结果:
启动下载进程,进程号[1420]. 开始下载Python从入门到住院.pdf... 启动下载进程,进程号[1431]. 开始下载Peking Hot.avi... Peking Hot.avi下载完成! 耗费了6秒 Python从入门到住院.pdf下载完成! 耗费了11秒 总共耗费了11.01秒.
""" 多进程 """ # 多进程的库 from multiprocessing import Process from random import randint from time import time, sleep import os def download_task(filename): print(‘开始下载%s‘ % filename) time_to_download = randint(5, 10) sleep(time_to_download) print(‘%s 下载完成,经过%d秒‘ % (filename, time_to_download)) def main(): start = time() # 开启两个多进程, 函数名 传递的参数,需要注意的是,它接受的是一个元组(tuple) p1 = Process(target=download_task, args=(‘论.......mp4‘, )) p2 = Process(target=download_task, args=(‘l论.......mp5‘, )) # 获取进程号 # 启动进程 p1.start() p2.start() ############## # 进程阻塞. p1.join() p2.join() ############## end = time() print(end - start) if __name__ == ‘__main__‘: main() import requests url = ‘http://op.hanhande.net/shtml/op_wz/list_2602_2.shtml‘ response = requests.get(url) response.encoding = ‘gbk‘ HTML = response.text print(HTML)
原文:https://www.cnblogs.com/liyuanyuan97/p/11328586.html