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.
8
time from a exceeded
a created
time from b exceeded
b created
time from c exceeded
c created
8
8
8
Nun zu den Punkten, die ich nicht verstehe.
Warum wird Linie 5 insgesamt 4 mal ausgeführt?
Habe da zwar eine Vermutung, welche für mich aber keinen Sinn ergibt:
Sie wird beim Ausführen einmalig und dann in jeden Process nochmals ausgeführt.
Aber die Abfrage ist doch nicht Teil der Funktion "myfunc()", die ich später den Prozessen zuweise.
Warum werden die Prozesse "proc_x" ausgeführt bevor ich sie über "proc_x.start()" starte?
Du begehst den üblichen Fehler: statt als Target ein callable zu übergeben, übergibst du den Rückgabewert des Aufrufs. Der None ist. Schau dir nochmal ganz genau die Beispiele an, und wo da Klammern sind, und wo nicht.
Zum ersten Punkt, das steht in der Dokumentation unter "Programming Guidelines". Je nach Start-Methode wird das Hauptmodul in den neuen Prozessen nochmal importiert, weshalb Zeile 5 dann mehrfach ausgeführt wird. In deinem eigentlichen Programm solltest du also direkt auf Modul-Ebene keinen Code haben, der sofort ausgeführt wird.
__deets__ hat geschrieben: ↑Sonntag 30. Mai 2021, 09:50
Du begehst den üblichen Fehler: statt als Target ein callable zu übergeben, übergibst du den Rückgabewert des Aufrufs. Der None ist. Schau dir nochmal ganz genau die Beispiele an, und wo da Klammern sind, und wo nicht.
Thants hat geschrieben: ↑Sonntag 30. Mai 2021, 10:10
Zum ersten Punkt, das steht in der Dokumentation unter "Programming Guidelines". Je nach Start-Methode wird das Hauptmodul in den neuen Prozessen nochmal importiert, weshalb Zeile 5 dann mehrfach ausgeführt wird. In deinem eigentlichen Programm solltest du also direkt auf Modul-Ebene keinen Code haben, der sofort ausgeführt wird.
Nur mal interesshalber nachgefragt
Gibt es da keine "Task-Map" in der man seine Tasks in einem Block zusammenpacken und starten kann?
Bsp:
Nix Weltbewegendes - ich will drei Tasks gleichzeitig starten und wissen welcher Task am schnellsten beendet ist.
Dafür eben eine "Task-Map"
@tonikae: Du solltest Code immer als Text in Code-Tags einstellen. Nicht als Link auf einen Screenshot. Die kaputte Einrückung dort hast du bemerkt? Auch wenn Julia mit End-Tags arbeitet, hilft es beim Lesen erheblich, wenn die in der richtigen Ebene stehen.
Ich sehe nicht die Besonderheit in dem Code auf dem Screenshot. Du tust die "Tasks" ja einfach in eine Datenstruktur. Das ist ja nichts Sprachspezifisches sondern sollte sich in jeder Sprache umsetzen lassen, die Datenstrukturen kennt und bei denen die Tasks/Threads/Nebenläufigkeiten etwas sind, das man dort hinein stecken kann.
Ich verstehe nicht, wo der große Unterschied ist. Weil man ein Pool Objekt braucht? Denn die Nutzung sieht doch nahezu gleich aus. Ich kenne Julia nur vom gelegentlich drüber lesen, und kann mir gut vorstellen, dass da Entscheidungen zugunsten “einfach mathematische Probleme lösen” getroffen wurden. Also eben einen impliziten worker Pool, statt explizit, weil es angenehmer zu nutzen ist. Wenn dir das wichtig ist, kannst du auch eine Hilfsmodul mit einem globalen Pool und einer daraus gezogenen task_map Funktion schreiben. Oder ist da sonst noch ein Unterschied, den ich nicht sehe?