Получите среднее значение нескольких потоков, работающих в цикле - PullRequest
1 голос
/ 05 мая 2020

Есть ли способ получить среднее значение всех запросов. Я могу получить время отклика для каждого выполнения, как показано ниже (работает как al oop в течение установленного времени). Но есть ли способ суммировать все это и получить среднее значение?

Вывод: поток 0 поток 1 запрос: 1 ResponseTime: 0,003963258999999941 запрос: 0 ResponseTime: 0,005142219999999975 поток 0

Я в основном хочу чтобы получить среднее значение всех 4 записей выше. ПРИМЕЧАНИЕ: я использую start = time.process_time () и request_time = time.process_time () - начните получать время ответа. Спасибо !!

1 Ответ

1 голос
/ 05 мая 2020

Если завершение потока приводит к завершению процесса, вам необходимо сохранить все результаты в файле или создать отдельный код для вычисления среднего значения с использованием значений в файле.

Если процесс продолжает выполняться даже после потоков d ie, вы можете сделать это следующим образом.

# Moving variable to keep track of average - global variable
average = 0

# Moving variable to keep track of number of threads that ran so far - global variable
n = 0

# On thread completion
def request(host, url, req_id):
    global average
    global n
    # Your code here 

    average = (average*n + new_thread_time) / (n+1)
    n += 1

Обратите внимание, что эти переменные необходимо синхронизировать между потоками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...