Подтвердить что ты не робот

Какой лучший способ дублировать fork() в окнах?

Как реализовать некоторую логику, которая позволит мне воспроизвести в Windows те функции, которые у меня есть в Linux, с системным вызовом fork(), используя Python?

Я специально пытаюсь выполнить метод на компоненте SAPI Com, продолжая вторую логику в основном потоке без блокировки или ожидания.

4b9b3361

Ответ 2

fork() фактически дублируется в Windows под Cygwin, но он довольно волосатый.

Вызов fork в Cygwin особенно интересен, потому что он плохо отображен поверх Win32 API. Это очень сложно реализовать правильно.

Для описания этого взлома см. Руководство пользователя Cygwin.

Ответ 3

Посмотрите на функции управления процессом в os module. Есть функция запуска новых процессов разными способами, как синхронно, так и асинхронно.

Следует также отметить, что Windows не предоставляет функциональные возможности, которые точно аналогичны fork() для других систем. Чтобы выполнить многопроцессорную обработку в Windows, вам нужно будет использовать модуль threading.

Ответ 4

В дополнение к коду управления процессом в модуле os, который указал Грег, вы также должны взглянуть на модуль потоковой передачи: https://docs.python.org/library/threading.html

from threading import Thread

def separate_computations(x, y):
    print sum(x for i in range(y))  # really expensive multiplication

Thread(target=separate_compuations, args=[57, 83]).start()
print "I'm continuing while that other function runs in another thread!"

Ответ 5

Пример Threading из Eli будет запускать поток, но не выполнять никакую работу после этой строки.

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

Ответ 6

Вам также может понравиться использовать модуль обработки (http://pypi.python.org/pypi/processing). Он имеет множество функций для написания параллельных систем с тем же API, что и модуль потоковой передачи...