Я пишу симуляцию для локальной сети Token Ring и пытаюсь запустить таймер в отдельном потоке моей основной программы, чтобы проверить время ожидания получения «живого состояния» "с монитора. Я запускаю программу мониторинга перед другими узлами, и оба они имеют одно и то же время ожидания перед отправкой и «живым состоянием» или началом выбора нового монитора, но программа-узел, похоже, тайм-аут перед монитором.Python time.time() надежность в параллельных программах
Это просто проблема с параллелизмом в python или это скорее проблема с моим кодом?
Вот функция, прогоны нить, если вам нужно больше информации просто спросите
def timer():
global reset
global ismonitor
global mToSend
global dataToSend
reset = time.time()
send_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while 1:
timer = time.time()
elapsed = timer - reset
if elapsed > 5:
if ismonitor:
mToSend = "110000" ## send around a token with a monitor alive flag on the broadcast channel
mToSend += maddr
dataToSend = True
reset = time.time()
else:
holdelection()
reset = time.time()
Я знал, что они не были должным образом параллельными, но надеялись, что это не будет слишком большой проблемой, казалось бы, я был неправильно. Спасибо за ссылки и ответ. Я посмотрю на использование процессов и посмотрю, как это происходит. – Cob50nm