page contents

Python 多线程

线程(Thread)也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位...........

attachments-2021-08-pu5rRc1p6119cbd04f30f.png

简介

线程(Thread)也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。

 

多线程的优势

²  进程之间不能共享内存,但线程之间共享内存非常容易。

²  操作系统在创建进程时,需要为该进程重新分配系统资源,但创建线程的代价则小得多。因此,使用多线程来实现多任务并发执行比使用多进程的效率高。

²  Python 语言内置了多线程功能支持,而不是单纯地作为底层操作系统的调度方式,从而简化了 Python 的多线程编程。

 

线条的调度和启动

python 中一个线程对应c语言中一个线程。

gil使得同一个时刻只有一个线程运行在cpu上执行字节码,无法将多个线程映射到多个cpu上执行。

gil会根据执行的字节码行数以及时间释放gil,在遇到io操作时会主动释放

python提供了_thread threading 两个模块来支持多线程,其中_thread提供低级别的,原始的线程支持,以及一个简单的锁,但是一般不建议使用_thread模块;而threading模块则提供了功能丰富的多线程支持。

python 主要提供两种方式来创建线程:

Ø  使用threading模块的Thread类的构造器创建线程

Ø  继承 threading模块的Thread类创建线程类

 

线程模块

Python通过两个标准库threadthreading提供对线程的支持。thread提供了低级别的、原始的线程以及一个简单的锁。

threading 模块提供的其他方法:

²  threading.currentThread(): 返回当前的线程变量。

²  threading.enumerate(): 返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。

²  threading.activeCount(): 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。

²  除了使用方法外,线程模块同样提供了Thread类来处理线程,Thread类提供了以下方法:

²  run(): 用以表示线程活动的方法。

²  start():启动线程活动。

²  join([time]): 等待至线程中止。这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。

²  isAlive(): 返回线程是否活动的。

²  getName(): 返回线程名。

²  setName(): 设置线程名。



以上就是有关Python 多线程的相关内容了,想要了解更多有关python的其它知识也可关注六星社区网站。 

  • 发表于 2021-08-16 10:23
  • 阅读 ( 446 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

1474 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章