首页 > 编程语言 > 详细

Python - 并发编程

时间:2018-06-26 00:02:37      阅读:232      评论:0      收藏:0      [点我收藏+]

1. 并发编程

  1. 实现让程序同时执行多个任务也就是常说的“并发编程”
  2. 使用Python实现并发编程主要有3种方式:多进程、多线程、多进程+多线程。
  3. 进程间通信必须通过进程间通信机制(IPC,Inter-Process Communication)来实现数据共享,具体的方式包括管道、信号、套接字、共享内存区等。

2. 单进程单线程

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()

技术分享图片
没有效率,一个文件下载完,另一个文件才下载

3. 把下载任务分别放到两个进程中(多进程)

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()

技术分享图片

Python - 并发编程

原文:https://www.cnblogs.com/allen2333/p/9226862.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!