在这个 Python 多线程教程中,您将看到创建线程的不同方法,并学习实现线程安全操作的同步。这篇文章的每个部分都包含一个示例和示例代码,以逐步解释该概念。
顺便说一下,多线程是几乎所有高级编程语言都支持的软件编程的核心概念。因此,您应该知道的第一件事是:什么是线程以及多线程在计算机科学中意味着什么。
什么是计算机科学中的线程?
在软件编程中,线程是具有独立指令集的最小执行单元。它是进程的一部分,并在共享程序的可运行资源(如内存)的相同上下文中运行。一个线程有一个起点、一个执行顺序和一个结果。它有一个指令指针,用于保存线程的当前状态并控制接下来按什么顺序执行。
什么是计算机科学中的多线程?
一个进程并行执行多个线程的能力称为多线程。理想情况下,多线程可以显着提高任何程序的性能。而且 Python 多线程机制非常人性化,您可以快速学习。
多线程的优点
- 多线程可以显着提高多处理器或多核系统的计算速度,因为每个处理器或核同时处理一个单独的线程。
- 多线程允许程序在一个线程等待输入时保持响应,同时另一个线程运行 GUI。此陈述适用于多处理器或单处理器系统。
- 进程的所有线程都可以访问其全局变量。如果一个全局变量在一个线程中发生变化,那么它对其他线程也是可见的。线程也可以有自己的局部变量。
多线程的缺点
- 在单处理器系统上,多线程不会影响计算速度。由于管理线程的开销,性能可能会下降。
- 访问共享资源时需要同步以防止互斥。它直接导致更多的内存和 CPU 利用率。
- 多线程增加了程序的复杂性,从而也使得调试变得困难。
- 它增加了潜在死锁的可能性。
- 当线程无法定期访问共享资源时,它可能会导致饥饿。应用程序将无法恢复其工作。
到目前为止,您已经阅读了有关线程的理论概念。如果您不熟悉 Python,我们建议您阅读我们的 30 个快速 Python 编码技巧,它们也可以帮助您编写 Python 多线程代码。我们的许多读者都使用了这些技巧,并且能够提高他们的编码技能。
Python 多线程模块
Python 提供了两个模块来在程序中实现线程。
- ** **模块和
- **<线程> **模块。
注意:供您参考,Python 2.x 曾经有 < thread> 模块。但它在 Python 3.x 中被弃用并重命名为 < _thread> 模块以实现向后兼容性。
两个模块的主要区别在于模块<_线程>将线程实现为函数。另一方面,< threading >模块提供了一种面向对象的方法来启用线程创建。
如何使用线程模块创建线程?
如果你决定在你的程序中应用< thread</