线程以及多线程

线程

每个python程序,在运行的时候,系统都为默认为这个进程创建一个线程来执行程序(这个线程叫'主线程')
如果想要让程序不在主线程中执行,就需要手动的去创建其他的线程('子线程') ---> threading模块(python内置的模块)

time模块是python内置的时间相关的模块,里面提供了很多时间相关的类和方法

import time
import threading

def download (file):
print('开始下载%s...'% file)
time.sleep(5)
print('%s下载完成,耗时5秒‘’% file)
if _ name _ _ ==' _ main_ _':

=====在主线程中下载两个内容=======
获取当前时间
start = time.time()
download(' 电影1')
download(' 电影2')
end = time.time()
print(' 总共耗时:%d秒 '%(end - start))
先下载电影1 然后下载电影2 总共耗时10秒

1.创建线程对象
t1 = threading.Thread(target = download, args= ('电影1,'))
target:创建的子线程中的执行函数(函数变量)
args:需要在子线程中执行的函数的参数(元祖)-->注意,实参后必须加逗号

2.执行需要在子线程中执行的代码
t1.start()
t2 = threading.Thread(target = download , args = ('电影2',))
t2.start()
t1下载完成 耗时5秒
t2下载完成 耗时5秒

线程类

1.声明一个类,继承自Thread类

 class DownloadTHread (Thread):
     #5.重写init方法来接收,run中需要的外部的内容
    def __init__(self, file):
    # 必须调用父类的init方法
    super().__init__()
    self.file = file
    #重写run方法(run方法中的代码就是在子线程中执行的代码)
   def run(self):
      print('这句话是在子线程中打印的')
      print('开始下载%s' % self.file)
      time.sleep(5)
      print('%s下载完成' % self.file)
    if __name__ == '__main__':
            # 3.通过Thread的子类去创建对象
t1 = DownloadThread('aa.mp4')
  # 4.调用start方法,执行子线程中的任务(不能直接调用run方法)
# t1.run()  # 直接调用run(),run中的代码是在当前线程中执行的
t1.start()  # 通过start间接调用run,run中的代码是在新的线程中执行
print('=======')

# 创建了一个线程,去下载火影忍者100.mp4
t2 = DownloadThread('火影忍者100.mp4')
t2.start()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.多任务 在计算机中,操作系统可以同时运行多个任务,这就是多任务。那么如何解决多个任务同时运行呢,那就需要用到多...
    潇潇雨歇_安然阅读 395评论 0 1
  • 多线程模块 threading 创建多线程的两种方式:import threadingimport time 创建...
    钱塘阅读 406评论 0 3
  • 一文读懂Python多线程 1、线程和进程 计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运...
    星丶雲阅读 1,525评论 0 4
  • 等一切等刚刚好了,再遇见你可好,我的心 为何你现在主要醉在我的心中,甜在梦中
    冰凉诗雨阅读 93评论 0 1
  • 为深入贯彻上级会议精神落实到位,临夏市公安局交警大队折桥湾执勤点严格按照上级会议精神,以更大的决心、更严的要求、更...
    天狼2阅读 195评论 0 1