Python 多线程实现程序交互:接收数据、发送数据和按钮控制
以下是一个简单的实现例子,使用 Python 的 threading 模块创建多线程,并使用 tkinter 库创建按钮来控制程序的执行流程:
import time
import threading
import tkinter as tk
# 全局变量,用于控制程序运行状态
running = True
def receive_data():
global running
while running:
# 接收数据的逻辑代码
print('接收数据...')
time.sleep(1)
def send_data():
global running
# 发送数据的逻辑代码
print('发送数据...')
time.sleep(5)
print('发送完成')
running = True # 发送完成后继续执行程序1
def start_receive():
global running
running = True
# 创建并启动接收数据的线程
t = threading.Thread(target=receive_data)
t.start()
def stop_receive():
global running
running = False
def start_send():
# 创建并启动发送数据的线程
t = threading.Thread(target=send_data)
t.start()
# 创建主窗口
window = tk.Tk()
# 创建按钮1,点击后开始接收数据
btn1 = tk.Button(window, text='开始接收', command=start_receive)
btn1.pack()
# 创建按钮2,点击后停止接收数据,开始发送数据
btn2 = tk.Button(window, text='停止接收,开始发送', command=lambda: [stop_receive(), start_send()])
btn2.pack()
# 进入主循环
window.mainloop()
在上面的代码中,使用全局变量 running 控制程序的运行状态。程序1通过循环不断接收数据,当点击按钮2时,将 running 设为 False,使程序1暂停。然后调用程序2发送数据,发送完成后将 running 设为 True,使程序1继续执行。
原文地址: https://www.cveoy.top/t/topic/o9Ql 著作权归作者所有。请勿转载和采集!