python中暂停和恢复运行代码
时间: 2024-03-22 16:39:36 浏览: 133
在Python中,可以使用多线程或协程来实现暂停和恢复运行代码的功能。下面分别介绍这两种方式的实现方法。
## 使用多线程
使用多线程可以在一个线程中暂停执行代码,而在另一个线程中恢复执行。具体实现方法如下:
```
import threading
import time
flag = True # 控制暂停和恢复的标志
def func():
while True:
if flag:
print("执行中...")
time.sleep(1)
t = threading.Thread(target=func)
t.start()
# 暂停执行
flag = False
print("暂停执行...")
time.sleep(3)
# 恢复执行
flag = True
print("恢复执行...")
```
在上面的代码中,我们创建了一个新的线程`t`,并在其中定义了一个函数`func`,该函数会不断地执行`print`和`time.sleep`函数。同时,我们定义了一个标志`flag`,当`flag`为`True`时表示可以执行,为`False`时表示需要暂停。
在主线程中,我们首先将`flag`设置为`False`,表示需要暂停执行。然后等待3秒钟后,将`flag`设置为`True`,表示恢复执行。
## 使用协程
使用协程可以在一个函数中暂停执行代码,而在另一个函数中恢复执行。具体实现方法如下:
```
import time
def func():
while True:
print("执行中...")
yield
time.sleep(1)
f = func()
# 暂停执行
print("暂停执行...")
next(f)
time.sleep(3)
# 恢复执行
print("恢复执行...")
next(f)
```
在上面的代码中,我们定义了一个生成器函数`func`,该函数会不断地执行`print`和`time.sleep`函数,并使用`yield`语句暂停执行。同时,我们创建了一个生成器对象`f`,并通过调用`next`函数来启动`func`的执行。
在主函数中,我们首先调用`next(f)`,将`func`的执行暂停。然后等待3秒钟后,再次调用`next(f)`,将`func`的执行恢复。
需要注意的是,在使用协程时需要使用`yield`语句来暂停执行,否则代码会一直执行而无法暂停。
阅读全文