运行 在循环内运行而不停止
Run function inside a loop without its stopping
我想 运行 循环和 return 使用 time.sleep() 函数的一些值而不中断循环。
如何让函数和循环同时工作?
函数 prt_1 使用 time.sleep(5)。这次我不想在循环中等待。我需要循环在函数休眠时保持 运行ning
import time
def prt_1(i):
while True:
print(f"AAA_{i}")
time.sleep(5)
for i in range(100):
print(i)
prt_1(i)
time.sleep(0.5)
得到类似的东西:
0
AAA_0
1
2
3
4
5
AAA_5
将每个循环放在一个单独的线程中,这就是您正在寻找的答案:
from threading import Thread
import time
def prt_1(i):
while True:
print(f"AAA_{i}")
time.sleep(5)
for i in range(100):
thread = Thread(target=prt_1, args=(i,))
thread.start()
time.sleep(0.5)
例如,您可以查看 'asyncio' 以创建可以 运行 并发的方法。
这将满足您的需求(如果我理解正确的话)!
import asyncio
async def prt_1(i):
while True:
print(f"AAA_{i}")
await asyncio.sleep(5)
async def main():
for i in range(100):
print(i)
asyncio.create_task(prt_1(i))
await asyncio.sleep(0.5)
asyncio.run(main())
Asyncio.create_task 将调用您的函数并让它 运行 与循环同时进行。而且你还必须修改,所以函数是一个 'async' 函数,并且循环也是一个。
我想 运行 循环和 return 使用 time.sleep() 函数的一些值而不中断循环。
如何让函数和循环同时工作?
函数 prt_1 使用 time.sleep(5)。这次我不想在循环中等待。我需要循环在函数休眠时保持 运行ning
import time
def prt_1(i):
while True:
print(f"AAA_{i}")
time.sleep(5)
for i in range(100):
print(i)
prt_1(i)
time.sleep(0.5)
得到类似的东西:
0
AAA_0
1
2
3
4
5
AAA_5
将每个循环放在一个单独的线程中,这就是您正在寻找的答案:
from threading import Thread
import time
def prt_1(i):
while True:
print(f"AAA_{i}")
time.sleep(5)
for i in range(100):
thread = Thread(target=prt_1, args=(i,))
thread.start()
time.sleep(0.5)
例如,您可以查看 'asyncio' 以创建可以 运行 并发的方法。
这将满足您的需求(如果我理解正确的话)!
import asyncio
async def prt_1(i):
while True:
print(f"AAA_{i}")
await asyncio.sleep(5)
async def main():
for i in range(100):
print(i)
asyncio.create_task(prt_1(i))
await asyncio.sleep(0.5)
asyncio.run(main())
Asyncio.create_task 将调用您的函数并让它 运行 与循环同时进行。而且你还必须修改,所以函数是一个 'async' 函数,并且循环也是一个。