Nachfrage bei multiprocessing

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Nitrama
User
Beiträge: 6
Registriert: Donnerstag 3. Dezember 2015, 15:47

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
Zuletzt geändert von Anonymous am Sonntag 6. Dezember 2015, 21:28, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Die Funktion braucht genauso lange. Allerdings kostet die Kommunikation natürlich Zeit. Dieser Overhead sollte allerdings bei größeren Programmen keine Rolle mehr spielen.
Antworten