更多课程 选择中心

Python培训
美国上市教育机构

400-111-8989

Python培训

零基础Python教程-多线程

  • 发布:Python培训
  • 来源:实战Python
  • 时间:2019-07-04 17:00

上一节我们说了多进程,估计聪明的朋友已经猜到了,下篇一定会更新多线程相关内容,没错,今天就是要讲一讲多线程。

在上节课中,我们将计算器的核心CPU比喻为一座工厂,进程比作工厂里的车间,那么,线程就好比车间里的工人。一个进程可以包括多个线程。车间的空间是工人们共享的,比如许多房间是每个工人都可以进出的。这象征一个进程的内存空间是共享的,每个线程都可以使用这些共享内存。

线程是最小的执行单元,而进程由至少一个线程组成。如何调度进程和线程,完全由操作系统决定,程序自己不能决定什么时候执行,执行多长时间。

Python既支持多进程又支持多线程。因此使用Python实现并发编程主要有3种方式:

多进程

多线程

多进程+多线程。

Python中的多线程

多任务可以由多进程完成,也可以由一个进程内的多线程完成。

Python的标准库提供了两个模块:_thread和threading,_thread是低级模块,threading是高级模块,对_thread进行了封装。绝大多数情况下,我们只需要使用threading这个高级模块。

启动一个线程就是把一个函数传入并创建Thread实例,然后调用start()开始执行:

from random import randint

from threading import Thread

from time import time, sleep

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

t1 = Thread(target=download, args=('MySQL从删库到跑路.pdf',))

t1.start()

t2 = Thread(target=download, args=('万万没想到.mp4',))

t2.start()

t1.join()

t2.join()

end = time()

print('总共耗费了%.3f秒' % (end - start))

if __name__ == '__main__': main()

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:零基础Python教程-多进程
下一篇:python中的logging日志模块

零基础Python教程-多进程

Python中字典合并的实现方法

python中的logging日志模块

零基础Python教程-多线程

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省