Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在函数中实现多处理或多线程?_Python_Multithreading_Multiprocessing - Fatal编程技术网

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

我在python中有以下函数:

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上的演讲”的视频。