共计 911 个字符,预计需要花费 3 分钟才能阅读完成。
在 Python 中,多线程共享全局变量可以使用以下几种方式实现:
- 使用全局变量:在多个线程中直接使用全局变量。但是需要注意,多个线程同时修改全局变量可能会导致数据竞争和不确定的结果。
import threading
def thread_func():
global shared_variable
# 使用 shared_variable
# 创建多个线程
threads = []
for _ in range(10):
t = threading.Thread(target=thread_func)
threads.append(t)
t.start()
# 等待所有线程结束
for t in threads:
t.join()
- 使用锁(Lock):使用锁确保同一时间只有一个线程能够修改全局变量。
import threading
shared_variable = 0
lock = threading.Lock()
def thread_func():
global shared_variable
lock.acquire()
try:
# 修改 shared_variable
finally:
lock.release()
# 创建多个线程
threads = []
for _ in range(10):
t = threading.Thread(target=thread_func)
threads.append(t)
t.start()
# 等待所有线程结束
for t in threads:
t.join()
- 使用线程局部变量(Thread-local variables):每个线程都有自己的变量副本,不会共享。
import threading
thread_local = threading.local()
def thread_func():
# 使用 thread_local.variable
# 设置每个线程的变量副本
for _ in range(10):
thread_local.variable = 0
t = threading.Thread(target=thread_func)
t.start()
# 等待所有线程结束
for t in threads:
t.join()
需要根据具体的需求选择适合的方法来实现多线程共享全局变量。
丸趣 TV 网 – 提供最优质的资源集合!
正文完