Python编程实例-深入了解Python多线程

深入了解Python多线程

文章目录

  • 深入了解Python多线程
    • 1、Python中的线程
    • 2、启动一个线程
    • 3、守护线程(Daemon Threads)
    • 4、处理多个线程
    • 5、使用ThreadPoolExector
    • 6、竞争条件
    • 7、使用Lock实现基本同步
    • 8、死锁
    • 9、生产者-消费者线程(使用锁)
    • 10、生产者-消费者线程(使用队列)
    • 11、与Thread相关的其他对象

Python 线程允许同时运行程序的不同部分并可以简化的设计。本文将详细介绍Python的线程。在本文中,我们将讨论如下内容:

  • Python中线程的基本概念及其限制
  • 如何创建线程并等待完成
  • 如何使用ThreadExecutor
  • 如何避免线程间的条件竞争
  • 如何使用通用threading库的通用工具

本文将使用Python3.9作为运行环境。

1、Python中的线程

线程是一个单独的执行流。但是对大多数Python3应用程序而言,不同的线程实际并不同时执行。

人们很容易将线程视为有两个(或更多)不同的处理器运行程序,每个处理器同时执行一项独立的任务。 这几乎是正确的。 线程可能在不同的处理器上运行,但它们一次只会运行一个。

让多个任务同时运行需要非标准的 Python 实现,用不同的语言编写一些代码,或者使用会带来一些额外开销的多处理。

由于 Python 的 CPython 实现方式,线程可能无法加速所有任务。 这是由于与 GIL 的交互本质上限制了一个 Python 线程一次运行。

花费大量时间等待外部事件的任务通常是线程化的良好选择。 需要大量 CPU 计算且花费很少时间等待外部事件的问题可能根本不会运行得更快。<

你可能感兴趣的:(Python编程实例,python,开发语言,pycharm,多线程,并发)