python多线程通讯示例
时间: 2023-07-24 08:14:12 浏览: 103
下面是一个使用 Python 多线程进行通信的示例:
```python
import threading
import time
# 创建一个全局变量用于线程间通信
shared_variable = 0
# 创建一个锁对象
lock = threading.Lock()
# 定义线程A
class ThreadA(threading.Thread):
def run(self):
global shared_variable
# 获取锁
lock.acquire()
# 修改全局变量
shared_variable += 1
# 释放锁
lock.release()
# 线程休眠一段时间
time.sleep(1)
# 定义线程B
class ThreadB(threading.Thread):
def run(self):
global shared_variable
# 获取锁
lock.acquire()
# 修改全局变量
shared_variable -= 1
# 释放锁
lock.release()
# 线程休眠一段时间
time.sleep(1)
# 创建线程实例
thread_a = ThreadA()
thread_b = ThreadB()
# 启动线程
thread_a.start()
thread_b.start()
# 等待线程执行完毕
thread_a.join()
thread_b.join()
# 输出最终的全局变量值
print("Shared Variable:", shared_variable)
```
上述示例中,我们创建了两个线程 ThreadA 和 ThreadB,并使用一个全局变量 shared_variable 进行线程间通信。在每个线程的 run 方法中,我们使用锁对象 lock 来保证对 shared_variable 的修改是原子的,避免多个线程同时修改导致的竞争条件。最终,我们输出了 shared_variable 的值,可以看到线程A和线程B的操作是互相影响的。
阅读全文