python 之 实现多线程(第三方库:threading)

1. 多线程的定义

  • 什么是进程,线程?
    线程是进程的最小执行单元,相当于不同的执行路径

2. start 和 run 的区别

start方法一个新线程将会被创建,run方法中的代码将会在新线程上运行。

3. 简单的示例

下面是一个简单的例子,它创建了两个线程,一个线程打印从 1 到 5 的数字,另一个线程打印从 'A' 到 'E' 的字母。

python3 复制代码
import threading  
import time  
  
# 定义第一个线程的任务  
def print_numbers():  
    for i in range(1, 6):  
        time.sleep(1)  # 模拟耗时操作  
        print(i, end=' ')  
    print()  
  
# 定义第二个线程的任务  
def print_letters():  
    for letter in 'ABCDE':  
        time.sleep(1)  # 模拟耗时操作  
        print(letter, end=' ')  
    print()  
  
# 创建线程  
numbers_thread = threading.Thread(target=print_numbers)  
letters_thread = threading.Thread(target=print_letters)  
  
# 启动线程  
numbers_thread.start()  
letters_thread.start()  
  
# 等待线程结束  
numbers_thread.join()  
letters_thread.join()  
  
print("All threads have finished.")

在这个例子中,print_numbers 和 print_letters 是两个函数,它们分别定义了线程要执行的任务。我们使用 threading.Thread 来创建线程,并通过 target 参数指定线程要执行的函数。然后,我们使用 start 方法来启动线程,并使用 join 方法来等待线程结束。

4. 执行结果

一个可能的输出结果是:

python 复制代码
1 A 2 B 3 C 4 D 5 E

或者数字和字母交替出现的任何其他顺序,但是每个数字或字母之间都会有一个一秒的延迟。

最后,当两个线程都执行完毕后,程序将打印出 "All threads have finished."。这通常发生在两个线程都已经完成了它们的 join 调用之后,确保了主线程会等待这两个线程执行完毕再继续执行。

相关推荐
gergul12 小时前
python venv虚拟环境复制
linux·开发语言·python
MClink12 小时前
小米开源大模型 MiMo 登顶全球第一,还白送百万亿 Token?手把手教你薅羊毛
人工智能·python·算法·openai·架构设计
m0_7414817812 小时前
SQL删除包含敏感信息的数据_使用数据脱敏后执行删除
jvm·数据库·python
2401_8822737212 小时前
如何用立即执行函数(IIFE)创建独立的作用域隔离变量
jvm·数据库·python
skilllite作者12 小时前
Agent-Skills 核心能力与实战效能深度评测
大数据·开发语言·前端·数据库·人工智能·python
2301_7662834412 小时前
mysql如何实现读写分离的权限分配_不同用户分别赋予权限
jvm·数据库·python
2401_8242226912 小时前
HTML函数开发需不需要雷电接口_高速接口实际用途说明【说明】
jvm·数据库·python
2401_8242226913 小时前
如何用 objectStore.get 根据主键 ID 获取数据库单条数据
jvm·数据库·python
郝学胜-神的一滴13 小时前
高并发秒杀系统设计全解:从需求拆解到Redis库存实战
java·数据库·redis·python·程序人生·缓存·php
Mr.朱鹏13 小时前
3.LangChain零基础速通-Prompt提示词模版和模型调用方法
人工智能·python·深度学习·langchain·llm·prompt·virtualenv