Python 如何在函数中实现多处理或多线程?
我在python中有以下函数:Python 如何在函数中实现多处理或多线程?,python,multithreading,multiprocessing,Python,Multithreading,Multiprocessing,我在python中有以下函数: def功能(带宽、范围开始、范围结束): 对于范围内的带宽(范围开始,范围结束,1): 操作系统('iperf-c'+服务器地址+'-u-p50001-b'+str(带宽)+'M-i1') def功能B(带宽、范围开始、范围结束): 对于范围内的带宽(范围开始,范围结束,1): 操作系统('iperf-c'+服务器地址+'-u-P50001-b'+str(带宽)+'M-I1' 我的目标是在带宽值达到某个值(比如20)时,继续运行Iperf或字面上的functio
def功能(带宽、范围开始、范围结束):
对于范围内的带宽(范围开始,范围结束,1):
操作系统('iperf-c'+服务器地址+'-u-p50001-b'+str(带宽)+'M-i1')
def功能B(带宽、范围开始、范围结束):
对于范围内的带宽(范围开始,范围结束,1):
操作系统('iperf-c'+服务器地址+'-u-P50001-b'+str(带宽)+'M-I1'
我的目标是在带宽
值达到某个值(比如20)时,继续运行Iperf
或字面上的function
我的意思是保持bandwidth
变量的值为20,而另一个functionB
在达到20后开始运行。同时,functionB
在bandwidth
值达到不同的特定值(比如40)时也保持运行。此时,functionA
停止使用带宽的静态值20,但它会增加到无穷大。而functionab
继续使用40作为带宽的静态值
首先,我想使用while
循环,如下所示:
为True时:
操作系统('iperf-c'+服务器地址+'-u-p50001-b'+str(带宽)+'M-i1')
但是,只要函数A处于无限循环中,就无法执行此操作
我也想过使用线程和多处理,但我不知道如何在这里应用它。这对我来说太复杂了
编辑
假设我们正在运行function,如果您可以通过使用range()看到带宽正在增加,但当它达到带宽值20时,它将以静态带宽值20启动iperf过程。
同时,functionB开始运行,当它达到带宽值40时,它以静态值带宽40运行iperf。当functionB开始生成静态带宽40时,function停止iperf(生成20Mbps流量),以启动另一个或其生成流量的进程,该进程从20开始到无限(使用range())。同时,functionB以40带宽静态值持续运行无限iperf进程
值为带宽20的函数在第一次停止时停止。而函数B以静态带宽值40继续运行iperf。这两个函数看起来相同-为什么需要两个相同的东西?@martineau他们基本上在做相同的过程,但参数有变化。事实上,我给出了一个简化的示例代码只是为了理解。我删除了这两个函数的部分代码。您希望在function
中启动iperf
还是functionB
同时运行或按顺序运行?@martineau我刚刚编辑了问题。请检查。抱歉,您最近的编辑没有真正阐明您的想法想做什么。也就是说,我认为您可以通过使用Python生成器(而不是多处理或线程)来做任何事情。请参阅David Beazley在youtube上发表的题为“他在PyCon 2014上的演讲”的视频。