Сценарий Python с потоками в дублированном процессе на Linux - PullRequest
0 голосов
/ 09 января 2020

Я запускаю сценарий Python (версия 3.6.8) на экземпляре AWS t2.micro с Amazon Linux AMI 2018.03. Сценарий запускает два длительных потока, как показано ниже.

Я отслеживаю использование ЦП и памяти с помощью htop, который показывает 2 процесса для моего сценария, которые занимают ресурсы. Исходя из результатов, кажется, что два процесса на самом деле не запущены. В macOS, где я разработал скрипт, htop показывает только 1 процесс для моего скрипта. На первом изображении ниже показаны свернутые процессы в Linux, а во втором - в виде дерева.

Неправильно ли я использую потоки Python? Или macOS и Linux показывают процессы для сценария python по-разному?

from threading import Thread
from time import sleep


def thread(sec_sleep):
    while 1:
        print('sleep', sec_sleep)
        sleep(sec_sleep)


def init_services():
    t = Thread(target=thread, args=(1, ))
    t.daemon = True
    t.start()


def main():
    init_services()
    thread(2)


if __name__ == "__main__":
    main()

enter image description here enter image description here

1 Ответ

2 голосов
/ 09 января 2020

Прежде всего, в этом нет ничего плохого. htop по умолчанию показывает отдельные потоки как отдельные процессы. Если вы нажали прописную H, то будет показан только основной процесс (нажмите еще раз, чтобы вернуться назад).

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