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 调用之后,确保了主线程会等待这两个线程执行完毕再继续执行。