""" 使用多线程的情况 - 模拟多个下载任务 Version: 0.1 Author: 骆昊 Date: 2018-03-20 """ from random import randint from time import time, sleep import threading class DownloadTask(threading.Thread): def __init__(self, filename): super().__init__() self._filename = filename def run(self): print('开始下载%s...' % self._filename) time_to_download = randint(5, 10) print('剩余时间%d秒.' % time_to_download) sleep(time_to_download) print('%s下载完成!' % self._filename) def main(): start = time() # 将多个下载任务放到多个线程中执行 # 通过自定义的线程类创建线程对象 线程启动后会回调执行run方法 thread1 = DownloadTask('Python从入门到住院.pdf') thread1.start() thread2 = DownloadTask('Peking Hot.avi') thread2.start() thread1.join() thread2.join() end = time() print('总共耗费了%.3f秒' % (end - start)) if __name__ == '__main__': main() # 请注意通过threading.Thread创建的线程默认是非守护线程