文章目录
本文将讲解 Python 编程语言中 多线程处理情况下线程同步的概念。
线程之间的同步
线程同步被定义为一种机制,它确保两个或多个并发线程不会同时执行某些称为关键段的特定程序段。
关键部分是指访问共享资源的程序部分。
例如,在下图中,3 个线程尝试同时访问共享资源或关键部分。
对共享资源的并发访问可能导致争用情况。
当两个或多个线程可以访问共享数据并尝试同时更改共享数据时,就会发生争用情况。因此,变量的值可能是不可预测的,并且根据进程的上下文切换的时间而变化。
考虑下面的程序来理解争用条件的概念:
import threading
# 全局变量 x
x = 0
def increment():
"""用于递增全局变量x的函数"""
global x
x += 1
def thread_task():
""" 线程的任务调用增量函数100000次。"""
for _ in range(10000000):
increment()
def main_task():
global x
# 将全局变量x设置为0
x = 0
# 创建线程