Seite 1 von 1

Nachfrage bei multiprocessing

Verfasst: Sonntag 6. Dezember 2015, 21:14
von Nitrama
Halli Hallo,

ich hab mich am Wochenende mal mit multiprocessing rumgeschlagen.
Und ich wollte mal nach fragen ob man das so machen kann, bzw ob es ein Besseren weg gibt.
Also Funktionieren schon mal so wie ich mir das gedacht habe bzw wie ich das in Tutorials gefunden habe.

Code: Alles auswählen

import time
import multiprocessing

def foo(q):
    q.put('hello')
    return

if __name__ == '__main__':
    multiprocessing.set_start_method('spawn')
    q = multiprocessing.Queue()
    p = multiprocessing.Process(target=foo, args=(q,))
    p.start()
    thread = 1 # thread läuft
    while True:
        if p.is_alive() != True and thread == 1:
            get = q.get()
            print (get)
            time.sleep(2)
            thread = 0
        print("nichts2")
Wenn ich die Function "foo" über ein Thread anspreche dauert sie länger als wenn ich sie "direckt" anspreche.
Kann man die Verzögerung irgendwie verringern?
Oder soll ich den Thread einfach laufen lassen?

Gruß Nitrama

PS: das erstemal das ich mich mit multiprocessing/Threading rumschlage

Re: Nachfrage bei multiprocessing

Verfasst: Montag 7. Dezember 2015, 04:39
von DasIch
Die Funktion braucht genauso lange. Allerdings kostet die Kommunikation natürlich Zeit. Dieser Overhead sollte allerdings bei größeren Programmen keine Rolle mehr spielen.