[英]Threading ping in mininet
我想同時啟動兩個或多個主機,以便在 mininet 中使用 python ping 其他兩個主機,我這樣做了,但不起作用
def simpleTest(h1,h2):
print (h1.cmd('ping -c5 %s' h2.IP()))
和主要:
if __name__ == '__main__':
net = Mininet(...)
threads= 3 # three threads
#....codes......
for i in range(1, threads):
hostsrc=net.hosts[i]
hostdest=net.hosts[i+4]
thread = threading.Thread(target=simpleTest(hostsrc,hostdest))
jobs.append(thread)
for j in jobs:
j.start()
for j in jobs:
j.join()
"""
codes ...
"""
任何解決方案請...
它通過在這一行中添加 args 來工作......
thread = threading.Thread(target=simpleTest, args=(hostsrc,hostdest,))
問題在於,當您將simpleTest
函數作為參數傳遞時,您正在調用它。 你應該像這樣編寫代碼:
thread = threading.Thread(target = simpleTest, args = (hostsrc, hostdest,))
或者使用 lambda:
thread = threading.Thread(target = lambda:simpleTest(hostsrc, hostdest))
您編寫的代碼將值 None 傳遞給target
參數,因為simpleTest
函數沒有返回值,因此在調用start
方法時什么也沒發生。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.