为了账号安全,请及时绑定邮箱和手机立即绑定

python如何while循环while true,一起运行多个函数

python如何while循环while true,一起运行多个函数

青春有我 2022-10-25 15:19:13
def function():    while True:          ...omission...(this function is repeated permanently)i =0while i < 4:    driver.execute_script("""window.open("URL")""")    driver.switch_to.window(driver.window_handles[-1])    time.sleep(1)    function()    time.sleep(1)    i += 1  #open new tab and run function.它不起作用,因为 while true 循环永久重复。有没有办法同时运行多个功能? https://imgur.com/a/4SIVekS这张图显示了我想要的
查看完整描述

2 回答

?
料青山看我应如是

TA贡献1772条经验 获得超7个赞

根据您的图片,您想要的是启动该功能一定次数(4?),然后并行运行。在单核上,与正常行为一样,直接并行处理是不可能的。您需要访问其他核心并管理分散的处理。while在那里没用。我担心难度超过你目前的技能,但我们开始吧。

您(可能取决于您的函数的实际内存安全性)需要的总体流程是:
- 为您想要的运行次数创建一个具有设定线程数的线程池。
- 指示您需要运行的功能
- 启动它们,确保启动本身是非阻塞的。
- 确保一个函数的处理不会影响另一个函数的结果。竞争条件是一个常见问题。
- 再次以非阻塞方式收集结果。

您可以使用多种方法。我强烈建议您阅读以下文档。

线程:
https ://docs.python.org/3/library/threading.html

多处理:
https ://docs.python.org/3/library/multiprocessing.html


查看完整回答
反对 回复 2022-10-25
?
呼唤远方

TA贡献1856条经验 获得超11个赞

我不明白你的问题,因为我不明白你的功能应该做什么。

while True:

将始终创建一个无限循环。“while”是一个命令,它告诉 python 循环遍历下面的块,只要它后面的表达式计算为 True。True 总是计算为 True。

似乎您想使用条件,就像您在“while x < 4”中所做的那样。

x < 4

...是一个表达式,当 x 小于 4 时计算结果为 true,如果 x 不小于 4,则计算结果为 false。行以下的所有内容:

while x < 4:

如果 x 小于 4 则将运行,当它运行完该代码时,它将返回并再次评估 x 是否小于 4,如果是,则再次运行代码。要在该循环中包含另一个 while 循环,该新循环还需要一个表达式来评估。如果要计算相同的表达式,请将其写出:

while x < 4:  
  # do something
    while x < 4:  
          #do more things
    # do even more things
    # change x at some point, or else you're in an infinite loop.

但是,没有理由专门这样做,因为您已经在这样做了。所有代码仅在 x < 4 时运行,因此再次检查该条件是多余的,并且在另一个循环中执行它是没有意义的。如果内部循环也在增加 x,那么外部循环将不会循环并且不需要增加 x。

此外,如果您希望函数根据函数外部的变量检查条件,则需要将内容传递给该函数。



查看完整回答
反对 回复 2022-10-25
  • 2 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信