python中,有两个函数,函数A里面有一个while 1循环,函数B是停止函数,函数B!怎么才能做到使得函数A跳出while循环
时间: 2024-10-20 07:04:48 浏览: 19
在Python中,为了在函数B(停止函数)中中断函数A(包含while 1循环)的执行,通常我们会通过传递一个参数或者改变一个全局状态来实现。这里是一个示例:
```python
import threading # 如果是在主线程中使用,可能不需要threading
# 函数A,包含一个无限循环
def function_A(stop_event):
while True:
# 在循环体内检查停止事件
if stop_event.is_set():
break # 找到停止信号就跳出循环
else:
# 进行设备操作
do_something()
# 停止函数B,用于设置全局停止事件
def function_B():
global stop_event # 全局变量stop_event需要显式声明
stop_event.set() # 设置停止事件,触发function_A的退出
# 初始化停止事件
stop_event = threading.Event()
# 启动function_A在一个新线程中
thread = threading.Thread(target=function_A, args=(stop_event,))
thread.start()
# 当需要停止时,调用function_B
function_B()
# 等待thread完成
thread.join()
```
在这个例子中,我们使用了`threading.Event()`来作为停止信号,它是线程安全的。当调用`stop_event.set()`时,`is_set()`检查会返回True,导致`while`循环结束。
阅读全文