标签:实现 技术 .com 共享内存 pre 开始 alt 没有 单线程
- 实现让程序同时执行多个任务也就是常说的“并发编程”
- 使用Python实现并发编程主要有3种方式:多进程、多线程、多进程+多线程。
- 进程间通信必须通过进程间通信机制(IPC,Inter-Process Communication)来实现数据共享,具体的方式包括管道、信号、套接字、共享内存区等。
from random import randint
from time import time, sleep
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()
download_task(‘文件A.pdf‘)
download_task(‘文件B‘)
end = time()
print(‘总共耗费了%.2f秒.‘ % (end - start))
if __name__ == ‘__main__‘:
main()
没有效率,一个文件下载完,另一个文件才下载
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=(‘文件A.pdf‘, ))
p1.start()
p2 = Process(target=download_task, args=(‘文件B.avi‘, ))
p2.start()
# 主程序主线程等待子进程p1, p2完成再继续执行
p1.join()
p2.join()
end = time()
print(‘总共耗费了%.2f秒.‘ % (end - start))
if __name__ == ‘__main__‘:
main()
标签:实现 技术 .com 共享内存 pre 开始 alt 没有 单线程
原文地址:https://www.cnblogs.com/allen2333/p/9226862.html