Python 3 中的多线程17 Mar 2025 | 6 分钟阅读 程序或进程的最小执行单元称为线程,它可以独立运行,也可以作为操作系统调度的一部分。操作系统通过将进程划分为线程来实现计算机系统的多任务处理。线程是一种轻量级的循环,保证在框架上独立执行交互。当多个处理器在 Python 3 中运行一个程序时,每个处理器同时运行以执行自己的任务。 ![]() Python 3 中的多线程Python 多线程多线程是 Python 编程中一种串行化过程,通过在中央处理器(称为设置交换)的帮助下快速在线程之间切换,从而同时运行多个线程。此外,它还可以与其进程的主线程共享数据空间,这比单个进程更容易共享信息和与其他线程通信。多线程的目标是同时完成多个任务,从而提高应用程序的渲染和性能。 注意:Python 全局解释器锁 (GIL) 允许一次只运行一个线程,即使机器有多个处理器。使用 Python 进行多线程的优势以下是使用 Python 进行多线程的优点:
何时在 Python 中使用多线程?它是提高应用程序性能的极其有价值的策略。程序员可以通过使用多线程同时运行应用程序的多个子任务。它允许线程与同一个处理器通信并共享文件、数据和内存等资源。此外,即使程序的一部分被阻塞或运行时间过长,它也能使用户更容易继续运行程序。 如何在 Python 中实现多线程?Python 中有两种主要的多线程模块用于处理线程:Python。
线程模块它在 Python 3 中启动,被指定为已弃用,并且只能通过支持向后兼容性的 _thread 访问。 语法 要实现 Python 中的线程模块,我们需要导入一个 thread 模块,然后定义一个函数,通过将目标设置为变量来执行某些操作。 Thread.py 输出 Calculate the square root of the given number Square is: 16 Square is: 25 Square is: 36 Square is: 49 Square is: 4 Calculate the cube of the given number Cube is: 64 Cube is: 125 Cube is: 216 Cube is: 343 Cube is: 8 Total time taken by threads is: 3.005793809890747 Threading 模块threading 模块是多线程的高级实现,用于在 Python 中部署一个应用程序。要使用多线程,我们需要在Python 程序中导入 threading 模块。 Thread 类方法
按照以下步骤在 Python 多线程中实现 threading 模块: 1. 导入 threading 模块 通过导入 threading 模块创建新线程,如下所示。 语法 threading 模块由 Thread 类组成,该类被实例化以创建 Python 线程。 2. 声明线程参数:它包含 Thread() 类中的目标函数、参数和 kwargs 作为参数。
例如 在上面的代码中,我们将 print_hello() 函数调用作为 target 参数。print_hello() 包含一个参数 n,该参数传递给 args 参数。 3. 启动新线程:要在 Python 多线程中启动线程,请调用线程类的对象。start() 方法每个线程对象只能调用一次;否则,它会引发异常错误。 语法 4. Join 方法:它是线程类中用于停止主线程执行并等待直到线程对象完全执行的 join() 方法。当线程对象完成时,它会在 Python 中启动主线程的执行。 Joinmethod.py 输出 Hello, how old are you? 20 Thank you 运行上述程序时,join() 方法会停止主线程的运行,并等待 t1 线程运行完毕。一旦 t1 成功完成,主线程将开始执行。 注意:如果我们不使用 join() 方法,解释器可以执行 Python 程序中的任何打印语句。通常,它会执行第一个打印语句,因为解释器从程序的开头执行代码行。5. Python 中线程的同步 它是一种线程同步机制,可确保没有两个线程可以同时运行程序的同一部分来访问共享资源。关键部分可用于描述这种情况。为了避免关键部分条件(其中两个线程不能同时访问资源),我们采用了竞争条件。 让我们编写一个程序来使用 Python 多线程中的 threading 模块。 Threading.py 输出 Calculate the square root of the given number Calculate the cube of the given number Square is: 16 Cube is: 64 Square is: 25 Cube is: 125 Square is: 36 Cube is: 216 Square is: 49 Cube is: 343 Square is: 4 Cube is: 8 Total time taken by threads is: 1.5140972137451172 Again executing the main thread Thread 1 and Thread 2 have finished their execution. 下一主题Python 中的静态 |
在本文中,我们将学习如何在 Python 中将字符串转换为其二进制等效项。我们知道字符串是由字符串组成的序列,并用反引号表示。二进制数字的形式为 0 和 1,信息始终编码在...
阅读 3 分钟
数据科学工作流程中一个关键阶段是使用适当的指标来衡量我们模型的准确性。在本教程中,我们将学习两种计算源样本预测类别准确性的方法:手动和使用 Python 的 scikit-learn 库。以下是我们将介绍的主题摘要...
5 分钟阅读
通常,当我们使用 print 语句打印一个字符串时,我们会使用另一个 print 语句在新的一行中打印另一个字符串。当我们编写一个 print 语句后,在其执行后,光标会自动移到新的一行。为什么会这样呢?我们不能...
阅读 4 分钟
在 CPU 中,调度方法选择进程的执行顺序,从而管理等待时间。其中一种方法被称为“最短作业优先”(SJF)或“最短作业”。该算法将最短的执行时间赋予进程...
5 分钟阅读
我们都在学生时代学过素数,如果有人忘记了也不用担心。素数基本上是只能被1或自身整除的自然数,素数的另一个定义是...
11 分钟阅读
机器学习是一门对计算机进行编程的科学,通过这种编程,计算机可以从不同类型的数据中学习。根据阿瑟·塞缪尔对机器学习的定义——“一个让计算机有能力在没有明确编程的情况下学习的研究领域”。机器学习的概念...
阅读 12 分钟
在本教程中,我们将学习如何使用 Python 代码生成漂亮的 QR 码。我们还将讨论更改 QR 码的大小、设置 QR 码的边框格式、旋转、创建动画 QR 码。正如我们在日常工作中看到的……
7 分钟阅读
简介:本教程讨论 PyBluez - Bluetooth Python 扩展模块。本文旨在向您介绍蓝牙编程,并帮助您开始使用 Python 蓝牙模块 PyBluez。蓝牙套接字编程与网络设计者用于 TCP/IP 连接的套接字编程相同,并且……
阅读 6 分钟
您想在重命名文件夹中的多个文件时使用特定的命名模式。手动过程可能耗时且容易出错。您正在考虑使用 Python 创建自定义批量文件重命名解决方案以自动化文件重命名过程。本教程适合您...
18 分钟阅读
在 Python 中,head() 函数通常用于从列表或 DataFrame 中检索前 n 个项目。列表的 head() 函数 在 Python 中,您可以将 head() 函数与列表一起使用以检索列表中的前 n 个项目。head() 函数不是...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India