Python Tutorial - Multiprocessing

  Рет қаралды 17,905

The Morpheus Tutorials

The Morpheus Tutorials

Күн бұрын

❤❤❤ Early access to tutorials, polls, live events and downloads ❤❤❤
❤❤❤ www.patreon.co... ❤❤❤
❤❤❤ Not up for Patreon? ❤❤❤
❤❤❤ www.paypal.me/... ❤❤❤
🌍 Website
🌍 the-morpheus.de
¯\_(ツ)_/¯ Join the community ¯\_(ツ)_/¯
** the-morpheus.d... **
** / themorpheustuts **
( ͡° ͜ʖ ͡°) More news? More code?
ℱ / themorpheustutorials
🐦 / themorpheustuts
🐙 github.com/The...
You order from Amazon? Order through me, costs you zero and you help me out
"-(¯`-.-'¯)-" amzn.to/2slBSgH
Video requests?
🎁 docs.google.co...
Questions? Feedback? Write me!
✉ www.patreon.co...
✉ / themorpheustutorials
✉ the-morpheus.d...
or just write a comment :)
Playlist: • Python Tutorials Deutsch

Пікірлер: 53
@chicorito696
@chicorito696 4 жыл бұрын
Danke für die Erklärungen! Meine Datenanalyse brauch nur noch 14 statt 30 Stunden :) BUG FIX: 'Error wegen der Chunks und unpassender Anzahl an Prozessen': Lösche Zeile 22, ersetze in 25 'numbers [chunks....]' mit 'numbers [ i::processes]'
@weissschnee3145
@weissschnee3145 5 жыл бұрын
Gutes Video aber mit fällt auf, dass seit dem letzten Video irgendwie ein Sprung war. Also mir fällt auf, dass du gut die Sachen erklärst aber ich sitze nach den Videos fast immer da und weiß nicht wofür ich das nutzten soll und wie ich das in ein Projekt einbringen soll. Ich habe mir gedacht, dass ich mir das so gut wie möglich alles ansehe weil ja viel hängen bleibt und ich dann Code von anderen Leuten anfange zu lesen. So lerne ich ja die Techniken anderer Leute kennen und wüsste wozu was eingesetzt werden kann. Was hältst du von der Idee? Und gibt es Codesharing Plattformen die vielfältigen Code anbieten wie Pastebin halt einfach Random aber man könnte den Code lesen lernen und vielleicht sogar verbessern.
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
Das ist definitiv sinnvoll. Das Ding ist, dass du ja nicht zwingend alles für deine Projekte brauchst. Am besten ist es, denke ich, wenn du ein eigenes Projekt direkt verfolgst. Dann merkst du auch direkt, was du brauchst.
@weissschnee3145
@weissschnee3145 5 жыл бұрын
@@TheMorpheusTutorials Naja ich meine mein Ziel ist es gerade weil ich in Richtung Hacking und Netzwerk Pentesting gehen will und dafür einfach mal eigene Scripts schreiben will. Aber ich denke halt, dass ich dafür auch noch weitreichende Kenntnisse in der Netzwerktechnik brauche deswegen traue ich mich da nicht so ran.
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
Du kannst ja mit was einfachem anfangen wie ein brute force Programm oder ein sniffer
@weissschnee3145
@weissschnee3145 5 жыл бұрын
@@TheMorpheusTutorials Ok Danke
@toddnedd2138
@toddnedd2138 5 жыл бұрын
Danke für die Tutorials. Die Aufteilung in chunks würde ich anders machen. btw: imho: Python ist ein produktives tool für Prototyping, aber für code in produktiven Anwendungen, nunja! ;) def mp_factor(numbers, processes): for i in numbers: if i < 1: raise ValueError("numbers contains value(s) smaller than '1'!") queue = multiprocessing.Queue() processes = max(1,processes) # at least one process entriesPerChunks = math.ceil(len(numbers) / processes + .5) chunks = [numbers[i:i+entriesPerChunks] for i in range(0, len(numbers),entriesPerChunks)] procs = list() #use len(chunks) to prevent spawning more processes than number of chunks for i in range(len(chunks)): proc = multiprocessing.Process(target=mp_worker, args=(queue, chunks[i])) procs.append(proc) proc.start() results = {} for i in range(len(chunks)): results.update(queue.get()) for i in procs: i.join() return results
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
Danke für den Code. Das kommt immer ein wenig auf die Anwendung an. Wenn der Code kurz, übersichtlich und quasi wie pseudocode sein soll, mag ich python sehr.
@sugandesenuds6663
@sugandesenuds6663 5 жыл бұрын
42 die per anhalter durch die Galaxis Referenz ist da
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
@bynft9854
@bynft9854 10 ай бұрын
Der Fehler ist Zeile 43: chunks = int(math.ceil(len(numbers)) / processes) -> chunks = int(math.ceil(len(numbers) / processes)) Hier ist die Klammer falsch gesetzt, und dadurch wird nicht aufgerundet. Somit werden Ergebnisse in gewissen Konstellationen abgeschnitten.
@easypy
@easypy 2 жыл бұрын
Super Ergänzung zum Video davor !
@tb7377
@tb7377 4 жыл бұрын
Kannst du mir bei 8:45 erklären, wozu man jetzt das i.join() benötitgt?
@Lukas-hx5ww
@Lukas-hx5ww 3 жыл бұрын
da wird gewartet bis alle Prozesse fertig sind
@screnshedder
@screnshedder 5 жыл бұрын
Ich habe da ein Verständnisproblem... Was genau macht das procs-Array? Da stehen doch nur die Prozesse drin. Warum wird denn darüber gejoint?
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
Damit man warten kann, bis sie fertig sind
@mr.unkreativ718
@mr.unkreativ718 5 жыл бұрын
Müsste der math.ceil Aufruf nicht len(numbers)/processes als Parameter bekommen und ist es nicht so, dass wenn es nicht glatt aufgeht chunks*(i+1) größer ist als len(numbers)?
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
äh, ja, das wäre sinnvoll #Facepalm sorry dafür. chunks*(i+1) hingegen ist kein Problem, da wird einfach bis zum Ende genommen
@mr.unkreativ718
@mr.unkreativ718 5 жыл бұрын
@@TheMorpheusTutorials Wenn ich jetzt aber 5 Zahlen und 2 Prozesse habe, bekommt der erste die ersten 3 Zahlen und der zweite die Zahlen 3 bis 6, wobei 6 eigentlich nicht existiert
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
Ja gut, sonst hätte der erste 3 Zahlen und der letzte nur 2. Wie rum ist ja eigentlich egal
@mr.unkreativ718
@mr.unkreativ718 5 жыл бұрын
@@TheMorpheusTutorials So haben dann beide drei bzw. wir eine ArrayIndexOutOfBoundsException
@alycamara5118
@alycamara5118 5 жыл бұрын
hallo möchte ich gern python von Anfang an anfangen aber ich konnte nicht finden in Ihrem Kanal ersten tutoriels von python
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
kzbin.info/aero/PLNmsVeXQZj7q0ao69AIogD94oBgp3E9Zs
@arturs1991
@arturs1991 5 жыл бұрын
Hi, vielen Dank für die Videos. Sie sind echt super erklärt und man kann super lernen! Leider funktioniert bei mir das Importieren von multiprocessing nicht. "multiprocessing" ist markiert und zeigt "Import resolves to its containing file...". Kannst du mir weiter helfen?
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
du darfst deine Datei nicht multiprocessing.py nennen, sonst versuchst du dich selbst zu importieren ;)
@arturs1991
@arturs1991 5 жыл бұрын
​@@TheMorpheusTutorials hahaha :D danke (Y)
@JackSparrow-bn2mg
@JackSparrow-bn2mg 10 ай бұрын
Hmmm hier fängt der Kopf wieder etwas an zu rauchen. Mit nebenbei recherchieren was die eine oder andere Funktion macht und gelegentlichem abschweifen in andere Möglichkeiten , Primzahlen Generator ohne Yield und eigene Dokumentation um es später noch zu begreifen, brauch ich grad 4h für das Video 😅 Aber macht Spaß wenn das Licht auf geht und man andere Stolpersteine wie falsche Klammern beseitigt hat 😉
@Error-oz4gd
@Error-oz4gd 2 жыл бұрын
Hey, ist zwar schon alt, aber vllt hilft trzdm noch jmd... Wofür benutzt man denn die Zeilen 50 bis 52: results = {} for i in range(processes): results.update(queue.get()) Und warum steht i.join() erst darunter? Weil durch die For Schleife wirkt es so, als würde nur einmal gecheckt werden, was das Ergebnis des Prozesses ist und wenn dieser bis dahin noch nicht abgeschlossen ist, wird einfach weiter gemacht. Deshalb wundert es mich, warum man erst danach wartet, bis alle Prozesse fertig sind. Pls help xD
@maxmustermann9391
@maxmustermann9391 3 жыл бұрын
Ich weiß zwar dass ich noch nicht soweit bin aber eventuell ein kivy tutorial
@antonelakrafcsik2809
@antonelakrafcsik2809 5 жыл бұрын
Hallo :) bei mir kommt immer nur das raus :/ {42: [2, 2, 2, 2, 2], 1337: [2, 2, 2, 2, 2, 2, 2, 2, 2, 2]}
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
Hm, ich weiß leider nicht, was genau du raus haben möchtest und was dein Code war - schreib mir das gerne mal per Discord, dann kann ich dir da helfen
@antonelakrafcsik2809
@antonelakrafcsik2809 5 жыл бұрын
@@TheMorpheusTutorials Hey:) Wie finde ich dich da? Ich habe den Namen "Morpheus" gesucht und es gab keine Treffer. Ich habe den Code in Pycharm eingegeben, aber ich habe dabei nicht die korrekte Lösung für die Aufspaltung von 42 und 1337 herausbekommen, sondern nur diese 2er Reihe
@forestcat512
@forestcat512 4 жыл бұрын
@@antonelakrafcsik2809 Morpheus#9581
@JackSparrow-bn2mg
@JackSparrow-bn2mg 10 ай бұрын
Die Frage ist lang her und ich denke mal du hast den selben Fehler wie ich gemacht der das gleiche Ergebnis hat. Im while-Block von factorize hab ich bei rest = num % i statt i eine 1 geschrieben. Damit hatte ich das gleiche Bild. Hast ja sicherlich schon gefunden aber vielleicht hilft es anderen Bye :)
@tonikaiser2823
@tonikaiser2823 4 жыл бұрын
Aber was ich mich immer frage, wenn das so einfach ist - ich gehe mal davon aus dass bestimmte Hacker so ein Programm noch hinkriegen - wo liegt dann die Sicherheit beim RSA?
@TheMorpheusTutorials
@TheMorpheusTutorials 4 жыл бұрын
Naja mit multiprocessing brauchst du halt statt 1000 Jahren cracken nur noch 125 Jahre.. Ist immernoch ziemlich unwahrscheinlich, dass du das schaffst 😂
@NoName-vr8ty
@NoName-vr8ty 5 жыл бұрын
Hallo Morpheus, mir stellt sich gerade die Frage, warum am Ende keine Ergebnisse gezeigt werden, wenn man die Prozesse von 2 auf 4 erhöht. Gibt es dafür eine Erklärung?
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
Naja, weil du nur 2 Zahlen hast ;)
@Lukas-hx5ww
@Lukas-hx5ww 3 жыл бұрын
ist schon lang her aber: bei "chunks = int(math.ceil(len(numbers)) / processes)" sind die klammern falsch es gehört eigentlich "chunks = int(math.ceil(len(numbers) / processes))" sonst wird ja nur "len(numbers) " aufgerundet was ja eigentlich schon eine Ganzzahl ist wenn "len(numbers) / processes" aufgerundet wird funktionierts Bsp.: 2 / 4 = 0.5 jeder Prozess macht (0.5 abgerundet) 0 zahlen deshalb insgesamt nur {} richtig: Bsp.: 2 / 4 = 0.5 aufgerundet = 1 erster Prozess macht 1 zweiter Prozess macht 1 dritter und vierter versuchen 1 zu machen die zahlen gibts aber nicht deshalb machen sie nix Ergebnis stimmt dann 3. und 4. laufen halt ohne was zu machen in einem Kommentar weiter oben wird das vom Morpheus auch bestätigt
@georgesk3737
@georgesk3737 4 жыл бұрын
Hallo, kurze Frage: Wenn die numbers nicht ganzzahlig durch processes teilbar sind werden nur die numbers ausgerechnet die es eben noch sind, sprich bei 5 numbers und 2 processes bekomme ich nur 4 numbers berechnet, bei 5 numbers und 3 processes nur 3. Kann man das irgendwie umgehen/umschreiben oder ist es üblich dass man bei der Eingabe die numbers den processes anpasst? Denke dass das bei der chunks Berechnung passiert, aber verstehe nicht genau warum, vielleicht wegen ranges die man dem multiprocessing.Process zuweist die dann garnicht existieren?
@TheMorpheusTutorials
@TheMorpheusTutorials 4 жыл бұрын
Ja, man müsste die Größe der chunks anpassen. Im besten Fall einfach aufteilen
@georgesk3737
@georgesk3737 4 жыл бұрын
Ok alles klar, danke!
@Lukas-hx5ww
@Lukas-hx5ww 3 жыл бұрын
ist schon lang her aber: bei "chunks = int(math.ceil(len(numbers)) / processes)" sind die klammern falsch es gehört eigentlich "chunks = int(math.ceil(len(numbers) / processes))" sonst wird ja nur "len(numbers) " aufgerundet was ja eigentlich schon eine Ganzzahl ist wenn "len(numbers) / processes" aufgerundet wird funktionierts Bsp.: 5 / 2 = 2.5 jeder Prozess macht (glaub ich) 2 zahlen deshalb insgesamt nur 4 zahlen Bsp.: 5 / 2 = 2.5 gerundet = 3 erster Prozess macht 3 zweiter Prozess versucht 3 zu machen bekommt aber nur 2 und macht diese 2 in einem Kommentar weiter oben wird das vom Morpheus auch bestätigt
@georgesk3737
@georgesk3737 3 жыл бұрын
@@Lukas-hx5ww Vielen Dank, das macht Sinn!
@concreeperhd7151
@concreeperhd7151 4 жыл бұрын
Hallo, ich vermute ich bekommen keine Antwort mehr, aber bei mir Funktioniert es nicht so ganz... ich bekomme zwar keine Fehlermeldung, aber es wird trotzdem nicht ausgeführt. Kannst du mir da helfen?😅
@encryqed3987
@encryqed3987 4 жыл бұрын
Welcher Fehler kommt den da?
@concreeperhd7151
@concreeperhd7151 4 жыл бұрын
@@encryqed3987 gar keiner, das Programm wird garnicht ausgeführt
@encryqed3987
@encryqed3987 4 жыл бұрын
@@concreeperhd7151 Hmm
@Paul_Poanie
@Paul_Poanie 8 ай бұрын
Gibt es eigentlich eine Funktion, die die Anzahl deiner "Ems" zählt???? Schon etwas nerfig, bei fast allenen deiner Videos.... Schaue auch nicht zu Ende, ist zu anstrengend...
@smoban
@smoban 2 жыл бұрын
scheiße man ich habe nichts verstanden
@HellesMammuthBS
@HellesMammuthBS 3 жыл бұрын
nach ein paar Minuten muss ich erstmal pausieren und nachgucken wie das mit chunks, queue und Process ist. Das ist echt nicht erklärt! Das Video bringt mir so wie es ist nichts
@neo6756
@neo6756 5 жыл бұрын
Moin
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
Ja moin
Python Tutorial - Multiprocessing vs Multithreading Performance Benchmark
10:18
The Morpheus Tutorials
Рет қаралды 8 М.
Python Tutorial - Multithreading Queues
17:16
The Morpheus Tutorials
Рет қаралды 11 М.
МАИНКРАФТ В РЕАЛЬНОЙ ЖИЗНИ!🌍 @Mikecrab
00:31
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 39 МЛН
Bike Vs Tricycle Fast Challenge
00:43
Russo
Рет қаралды 38 МЛН
Самое неинтересное видео
00:32
Miracle
Рет қаралды 2,7 МЛН
Python #34 - Logging
17:33
The Morpheus Tutorials
Рет қаралды 22 М.
Tic Tac Toe in Python programmieren
8:05
PyJa
Рет қаралды 122
80% der Softwareentwickler sind unglücklich. Was ändern wir?
26:32
The Morpheus Tutorials
Рет қаралды 22 М.
What La Niña Will do to Earth in 2025
19:03
Astrum
Рет қаралды 587 М.
Python Tutorial - Subprocess - accessing the commandline
7:34
The Morpheus Tutorials
Рет қаралды 13 М.
Python Tutorial - Multiprocessing vs Multithreading
8:09
The Morpheus Tutorials
Рет қаралды 14 М.
Wegen KI: Lohnt sich das Informatik Studium noch?
21:38
The Morpheus Tutorials
Рет қаралды 22 М.
Python #27 - Exceptions
12:21
The Morpheus Tutorials
Рет қаралды 29 М.
Python #28 - Multithreading
11:06
The Morpheus Tutorials
Рет қаралды 58 М.
МАИНКРАФТ В РЕАЛЬНОЙ ЖИЗНИ!🌍 @Mikecrab
00:31
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 39 МЛН