怎么实现python线程间的数据,你能给个简单的代码吗
时间: 2024-05-08 21:19:34 浏览: 36
当然可以,以下是一个简单的例子:
```python
import threading
# 共享数据
shared_data = []
# 定义一个线程类
class MyThread(threading.Thread):
def __init__(self, tid, name):
threading.Thread.__init__(self)
self.tid = tid
self.name = name
def run(self):
global shared_data
# 加锁
threadLock.acquire()
shared_data.append(self.name)
# 释放锁
threadLock.release()
# 创建两个线程
thread1 = MyThread(1, "Thread 1")
thread2 = MyThread(2, "Thread 2")
# 创建锁
threadLock = threading.Lock()
# 启动线程
thread1.start()
thread2.start()
# 等待线程结束
thread1.join()
thread2.join()
# 输出共享数据
print("共享数据: ", shared_data)
```
在这个例子中,我们创建了一个共享数据列表 `shared_data`,并定义了一个线程类 `MyThread`,该类可以向 `shared_data` 添加数据。在 `run` 方法中,我们使用了 `threadLock` 锁来确保多个线程不能同时修改 `shared_data`,从而避免了数据竞争问题。最后,我们启动了两个线程和等待线程结束,并输出了共享数据。