2 回答
TA贡献1772条经验 获得超7个赞
根据您的图片,您想要的是启动该功能一定次数(4?),然后并行运行。在单核上,与正常行为一样,直接并行处理是不可能的。您需要访问其他核心并管理分散的处理。while
在那里没用。我担心难度超过你目前的技能,但我们开始吧。
您(可能取决于您的函数的实际内存安全性)需要的总体流程是:
- 为您想要的运行次数创建一个具有设定线程数的线程池。
- 指示您需要运行的功能
- 启动它们,确保启动本身是非阻塞的。
- 确保一个函数的处理不会影响另一个函数的结果。竞争条件是一个常见问题。
- 再次以非阻塞方式收集结果。
您可以使用多种方法。我强烈建议您阅读以下文档。
线程:
https ://docs.python.org/3/library/threading.html
多处理:
https ://docs.python.org/3/library/multiprocessing.html
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。
此外,如果您希望函数根据函数外部的变量检查条件,则需要将内容传递给该函数。
添加回答
举报