
Πώς μπορώ να εφαρμόσουν κάποια λογική που θα μου επιτρέψει να αναπαράγουν σε Windows τη λειτουργικότητα που έχω στο Linux με την `fork()`κλήση του συστήματος, χρησιμοποιώντας Python;


Είμαι ιδιαίτερα προσπαθεί να εκτελέσει μια μέθοδο για τη συνιστώσα SAPI Com, ενώ συνεχίζεται η άλλη λογική στο κύριο νήμα χωρίς να εμποδίζουν ή να περιμένει.

 
Ποιος είναι ο καλύτερος τρόπος για να αντιγράψετε το πιρούνι () στα παράθυρα;
=============================================================================



Ενδεχομένως μια έκδοση του γόνου () για python; <http://en.wikipedia.org/wiki/Spawn_(operating_system)>

 

Ρίξτε μια ματιά στις λειτουργίες διαχείρισης της διαδικασίας στην [ενότητα os](http://python.org/doc/2.5/lib/os-process.html) . Υπάρχουν λειτουργία για την έναρξη νέων διαδικασιών με πολλούς διαφορετικούς τρόπους, τόσο σύγχρονα και ασύγχρονα.


Θα πρέπει να σημειωθεί επίσης ότι τα Windows δεν παρέχει λειτουργικότητα που είναι ακριβώς όπως το πιρούνι () σε άλλα συστήματα. Για να το κάνετε πολυεπεξεργασία στα Windows, θα πρέπει να χρησιμοποιήσετε το [σπείρωμα](http://python.org/doc/2.5/lib/module-threading.html) της μονάδας.

 

Εκτός από τον κώδικα διαχείρισης της διαδικασίας στην ενότητα os που Greg τόνισε, θα πρέπει επίσης να ρίξετε μια ματιά στην ενότητα σπείρωμα: <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!"

```
 

Ίσως θα θέλατε επίσης με τη χρήση της μονάδας επεξεργασίας ( <http://pypi.python.org/pypi/processing> ). Έχει πολλά της λειτουργικότητας για το γράψιμο παράλληλα συστήματα με τον ίδιο API, όπως η μονάδα σπείρωμα ...

 

Το παράδειγμα Threading από Eli θα τρέξει το νήμα, αλλά δεν το κάνουν οποιαδήποτε από τις εργασίες μετά από αυτή τη γραμμή. 


Πάω να εξετάσει τη μονάδα επεξεργασίας και τη μονάδα υποεπεξεργασία. Νομίζω ότι η μέθοδος com Τρέχω πρέπει να είναι σε μια άλλη διαδικασία, όχι μόνο σε άλλο νήμα.

 

`fork()` *έχει* στην πραγματικότητα έχουν αναπαραχθεί στα Windows, κάτω από [Cygwin](https://en.wikipedia.org/wiki/Cygwin) , αλλά είναι πολύ τριχωτό.



> 
> Η κλήση πιρούνι στο Cygwin είναι ιδιαίτερα ενδιαφέρουσα, διότι δεν χάρτη και στην κορυφή του API του Win32. Αυτό καθιστά πολύ δύσκολο να εφαρμοστεί σωστά.
> 
> 
> 


Δείτε το [Οδηγός χρήσης Το Cygwin](http://cygwin.com/cygwin-ug-net/highlights.html#ov-hi-process) για μια περιγραφή αυτού του hack.

 

Χρησιμοποιήστε το python [μονάδα πολυεπεξεργασία](http://docs.python.org/library/multiprocessing.html) η οποία θα λειτουργήσει παντού.


Εδώ είναι ένα [άρθρο IBM developerWords](http://www.ibm.com/developerworks/aix/library/au-multiprocessing/) που δείχνει πώς να μετατρέψετε από os.fork () στη μονάδα πολυεπεξεργασία.

 