线程实现双向通信示例代码
时间: 2023-05-23 20:01:18 浏览: 88
下面是一个简单的线程实现双向通信的示例代码:
```python
import threading
class MyThread(threading.Thread):
def __init__(self, name, target):
threading.Thread.__init__(self, name=name, target=target)
self.message = None
def run(self):
while True:
if self.message is None:
continue
elif self.message == 'exit':
break
else:
print('{} received: {}'.format(self.name, self.message))
self.message = None
def send_message(self, message):
self.message = message
if __name__ == '__main__':
thread1 = MyThread(name='Thread 1', target=None)
thread2 = MyThread(name='Thread 2', target=None)
thread1.start()
thread2.start()
thread1.send_message('Hello from Thread 1!')
thread2.send_message('Hello from Thread 2!')
thread1.send_message('exit')
thread2.send_message('exit')
thread1.join()
thread2.join()
```
这个示例代码中,我们实现了一个双向通信的线程,其中一个线程可以向另一个线程发送消息。线程通过 `send_message()` 方法发送消息,另一个线程通过轮询消息队列来接收消息,并进行相应的处理。注意,这个示例中的 `target` 参数为 `None`,表示不执行具体的操作,而是在 `run()` 方法中等待接收消息并进行处理。通过 `exit` 消息来结束两个线程的运行。
阅读全文