Python-Day13-进程和线程
参考:
[Python - 100天从新手到大师]: https://github.com/jackfrued/Python-100-Days
1、笔记
2、Python中的多进程
2.1 进程的创建、启动和执行
在Windows中没有fork()
调用,可以使用multiprocessing
模块的Process
类来创建进程。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| """多进程示例""" 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从入门到ICU.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()
|
2.2 进程间通信
使用multiprocessing
模块的Queue
类(底层通过管道和信号量实现)
3、Python中的多线程