Hva er den beste måten å duplisere gaffel () i windows?

stemmer
22

Hvordan kan jeg gjennomføre noen logikk som vil tillate meg å gjenskape på Windows funksjonalitet som jeg har på Linux med gjør fork()systemkall, ved hjelp av Python?

Jeg spesielt prøver å utføre en metode på SAPI Com komponent, mens du fortsetter den andre logikken i hovedtråden uten å blokkere eller venter.

Publisert på 22/08/2008 klokken 20:27
kilden bruker
På andre språk...                            


7 svar

stemmer
17

Bruk python multimodul som vil fungere overalt.

Her er en IBM developerWords artikkel som viser hvordan du konvertere fra os.fork () til den multi modulen.

Svarte 16/05/2011 kl. 16:51
kilden bruker

stemmer
10

fork() har faktisk blitt duplisert i Windows under Cygwin , men det er ganske hårete.

Gaffelen samtale Cygwin er spesielt interessant fordi den ikke kartlegge godt på toppen av Win32 API. Dette gjør det svært vanskelig å gjennomføre riktig.

Se The Cygwin brukerhåndboken for en beskrivelse av denne hack.

Svarte 04/10/2008 kl. 14:10
kilden bruker

stemmer
3

Den Threading eksempel fra Eli vil kjøre tråden, men ikke gjøre noe av arbeidet etter den linjen.

Jeg kommer til å se inn i modulen og delprosess modulen. Jeg tror com metoden jeg kjører må være i en annen prosess, ikke bare i en annen tråd.

Svarte 09/09/2008 kl. 15:37
kilden bruker

stemmer
3

I tillegg til prosessledelse koden i os modul som Greg påpekt, bør du også ta en titt på threading modul: 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!"
Svarte 22/08/2008 kl. 21:16
kilden bruker

stemmer
3

Ta en titt på prosessen lederfunksjoner i os modulen . Det er funksjonen for å starte nye prosesser på mange forskjellige måter, både synkront og asynkront.

Jeg bør også oppmerksom på at Windows ikke gir funksjonalitet som er akkurat som gaffel () på andre systemer. For å gjøre multi på Windows, må du bruke threading modulen.

Svarte 22/08/2008 kl. 20:38
kilden bruker

stemmer
2

Du kan også liker å bruke behandlingsmodul ( http://pypi.python.org/pypi/processing ). Den har mye av funksjonaliteten for å skrive parallelle systemer med samme API som threading modul ...

Svarte 24/08/2008 kl. 15:38
kilden bruker

stemmer
0

Muligens en versjon av rogn () for python? http://en.wikipedia.org/wiki/Spawn_(operating_system)

Svarte 22/08/2008 kl. 20:34
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more