Запуск Iperf Server и клиента с использованием многопоточности в Python вызывает ошибку сегментации
Основной класс вызывает два других класса (IperfServer и IperfClient), и я пытаюсь запустить их, используя многопоточность. Я использую класс оболочки Python для iperf3. Оба класса инициированы, но во время работы Iperf я получаю ошибку сегментации.
КОД СНИПЕТТ:
class IperfServer(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
print("1")
server = iperf3.Server()
print("2")
server.port = 5201
response = server.run()
class IperfClient(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
print("3")
connection = http.client.HTTPSConnection("abc.efg")
print("4")
connection.request(method="GET", url="/hij/")
response = connectn.getresponse()
connectn.close()
print("5")
client = iperf3.Client()
client.run()
class IperfAgent(object):
thread1 = IperfClient()
thread2 = IperfServer()
thread1.start()
thread2.start()
ВЫХОД:
3
1
Ошибка сегментации
Я новичок в Python и многопоточности. Может ли кто-нибудь помочь мне понять, какую ошибку я совершаю?
1 ответ
Решение
Попробуйте запустить его в подпроцессе (см. Multiprocessing.Process) вместо потока.
Похоже, что iperf_defaults требует запуска в главном потоке.