gpt4 book ai didi

python - Python:同时执行多个无限循环

转载 作者:行者123 更新时间:2023-12-03 13:15:59 24 4
gpt4 key购买 nike

在Python中,我试图使一个无限循环开始同时开始并行运行,一个简单的示例将是:

from threading import Thread

def func(argument):
while True:
print(argument)

def main():
Thread(target=func("1")).start()
Thread(target=func("2")).start()
Thread(target=func("3")).start()
Thread(target=func("4")).start()

if __name__ == '__main__':
main()

现在只有第一个线程运行,所以结果是:
1
1
1
1
....

它应该是:
1
2
3
4
....

我发现了几个类似的问题,但是所提供的解决方案似乎都不适合我,包括在线程上使用 join

因此,如果有人知道我的问题的解决方案,将不胜感激。

提前致谢!

最佳答案

第一个线程没有启动。您正在func中调用main并尝试将其返回值设置为target,但是它会永远运行,并且永远不会创建第一个线程。你要:

from threading import Thread

def func(argument):
while True:
print(argument)

def main():
Thread(target=func,args=("1",)).start()
Thread(target=func,args=("2",)).start()
Thread(target=func,args=("3",)).start()
Thread(target=func,args=("4",)).start()

if __name__ == '__main__':
main()

这将 func作为对象传递。启动线程将使用指定的args元组调用该对象。

关于python - Python:同时执行多个无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46985446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com