我在python中有以下函数:
def functionA(bandwidth, range_start, range_end):
for bandwidth in range(range_start, range_end, 1):
os.system('iperf -c ' + server_address + ' -u -p 50001 -b ' + str(bandwidth) + 'M -i 1')
def functionB(bandwidth, range_start, range_end):
for bandwidth in range(range_start, range_end, 1):
os.system('iperf -c ' + server_address + ' -u -p 50001 -b ' + str(bandwidth) + 'M -i 1'
我的目标是当bandwidth
值达到某个值(比如说20)时继续运行Iperf
或者字面上的这个functionA
,我的意思是保持bandwidth
变量的值为20,而另一个functionB
在达到20之后开始运行。同时,当bandwidth
值达到不同的某个值(比如说40)时,functionB
也继续运行。此时,functionA
不再具有bandwidth
的静态值20,但它会增加到无穷大。而functionB
保持40作为bandwidth
的静态值
首先,我想使用while
循环,如下所示:
while True:
os.system('iperf -c ' + server_address + ' -u -p 50001 -b ' + str(bandwidth) + 'M -i 1')
但是,只要函数A在无限循环中,就不能这样做
我也想过使用线程和多处理,但我不知道如何在这里应用它。对我来说太复杂了
编辑
假设我们正在运行函数,如果您可以看到带宽正在使用range()增加,但是当它达到带宽值20时,它将启动iperf进程,静态值为带宽20。 同时,函数b开始运行,当达到带宽值40时,它以静态值带宽40运行iperf。此时,当函数b开始生成静态带宽40时,函数停止iperf(生成20Mbps流量),开始另一个或其生成流量的过程,从20开始到无限(使用range())。同时,函数b以40带宽静态值持续运行无限iperf进程
值为20的函数在第一次停止时。而functionB以静态带宽值40继续运行iperf
目前没有回答
相关问题 更多 >
编程相关推荐