阅读量:1
在Python中,可以使用共享变量来实现双线程之间的数据传递。下面是一个简单的例子:
import threading # 创建一个共享变量 shared_variable = 0 # 创建一个锁来保护共享变量的访问 lock = threading.Lock() # 定义一个线程函数,用于增加共享变量的值 def increase(): global shared_variable for _ in range(1000000): # 获取锁 lock.acquire() shared_variable += 1 # 释放锁 lock.release() # 定义一个线程函数,用于减少共享变量的值 def decrease(): global shared_variable for _ in range(1000000): # 获取锁 lock.acquire() shared_variable -= 1 # 释放锁 lock.release() # 创建两个线程 t1 = threading.Thread(target=increase) t2 = threading.Thread(target=decrease) # 启动线程 t1.start() t2.start() # 等待线程结束 t1.join() t2.join() # 输出共享变量的值 print(shared_variable)
在上述代码中,我们创建了一个共享变量shared_variable
和一个锁lock
。然后我们定义了两个线程函数increase
和decrease
,分别用于增加和减少共享变量的值。在每个线程函数中,我们首先获取锁,然后对共享变量进行修改,最后释放锁。这样可以确保每次只有一个线程在访问共享变量,避免了数据竞争的问题。
最后,我们创建了两个线程t1
和t2
,并分别启动它们。然后使用join
方法等待两个线程结束,并输出最终的共享变量的值。