amarao (amarao_san) wrote,
amarao
amarao_san

multithread python

Вот у меня есть такой код (с упрощениями)
    for entry in task_data:
        thread = threading.Thread(target=job, args=(entry,))
        thread.start()
        thread_list.append(thread)
    for thread in thread_list:
        log.info("Waiting for thread %s" str(thread))
        thread.join()
    log.info("Cycle done")


Предположим, я не ожидаю (по ТЗ), что какой-либо из тредов зависнет. Является ли этот код адекватным?

Другими словами, после того как я сделаю join для всех тредов, они же все будут stopped к моменту "Cycle done"?

Какие неожиданные грабли меня могут ожидать? Предполагается, что job - это сплошное внешнее IO, а математики питона там мало.
Tags: python
Subscribe

  • А вот вам пост об исторической нелогичности

    Вот есть у меня файл /etc/default/grub.d/unified.cfg для включения unified cgroups для systemd. А вот вопрос (ответ на который я хорошо знаю, но…

  • апгрейдовое

    А вот шифрованный home я переносил вообще ленивым образом - тупо сделал dd для раздела и поправил путь к устройству для кастомного pam_exec-скрипта.…

  • VM VS baremetal

    Наконец-таки у меня появились цифры для обсуждения этого вопроса в отрыве от IO. Известно, что IO на виртуалках всегда медленее, чем на bare-metal, и…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 6 comments