Python Threading, чтобы иметь такое же поведение, как вилка - PullRequest
0 голосов
/ 18 мая 2018

Я только начал в Python и с модулем потоков.Я использовал вилки в C, и поведение таково, что при запуске fork оба потока остаются в одной строке кода.Мне было интересно, как я могу это сделать, так как я не могу это сделать.Если я не укажу целевую программу, она ничего не сделает с thread.start ().Есть ли способ сделать это?Моя строка кода в основном, у меня фактически есть этот код:

t = threading.Thread()
b = threading.Thread()
t.start()
b.start()
print(threading.current_thread())

Так как у Thread нет цели, они не запускаются, но я не знаю, как установить цель для той строки кода, которую я сейчас выполняювыполнение

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Форкинг не создает другого потока.Он создает другой дочерний процесс со своим собственным pid, это также имеет место в C. Вы можете воспроизвести поведение форка C, используя os.fork() ( ссылка на документ ).Это заставит ваш процесс вернуть pid, что позволит вам запускать различный код в зависимости от процесса.

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

0 голосов
/ 18 мая 2018

См. Объекты темы

import threading


def my_target():
    print "target runing:", threading.current_thread()

t = threading.Thread(target=my_target)
t.start()
...