Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Arbejde med processer | Multithreading vs. Multiprocessing
Python Strukturel Programmering

Arbejde med processer

Stryg for at vise menuen

Pythons multiprocessing-modul muliggør ægte parallelisme ved at oprette separate processer, hver med sin egen Python-fortolker og hukommelsesområde. I modsætning til tråde, som deler hukommelse og kører i samme proces, er processer fuldstændig isolerede fra hinanden. Denne isolation undgår begrænsningen fra Global Interpreter Lock (GIL), hvilket gør det muligt for flere CPU-kerner at arbejde parallelt på CPU-tunge opgaver. Efter at have set videoen ovenfor, bør du forstå, at procesbaseret parallelisme især er nyttig, når der skal udføres tunge beregninger eller udnyttes flere kerner til opgaver, der ellers ville blive begrænset af GIL. multiprocessing-modulet tilbyder et velkendt API, der ligner threading-modulet, hvilket gør det nemt at skifte mellem tråde og processer afhængigt af behov.

Brug disse klasser og funktioner til at opbygge robuste parallelle applikationer, håndtere datadeling og koordinere procesudførelse i Python.

123456789101112131415
import multiprocessing import time def print_message(message, delay): time.sleep(delay) print(message) process1 = multiprocessing.Process(target=print_message, args=("Process 1 finished", 2)) process2 = multiprocessing.Process(target=print_message, args=("Process 2 finished", 1)) process1.start() process2.start() process1.join() process2.join()

Dette kodeeksempel demonstrerer, hvordan man bruger Pythons multiprocessing-modul til at køre opgaver parallelt ved at oprette separate processer. Eksemplet anvender simple tidsforsinkelser og udskriver beskeder for at vise, hvordan processer kan køre uafhængigt og samtidigt.

Centrale begreber illustreret

  • Procesoprettelse:

    • Nye processer oprettes med multiprocessing.Process-klassen;
    • Hver proces får en målfunktion (print_message) og argumenter, der skal videregives til funktionen.
  • Processtart:

    • Metoden start() starter hver proces, så de kan køre samtidigt;
    • Når de er startet, kører hver proces sin målfunktion uafhængigt af de andre.
  • Parallel udførelse:

    • Begge processer sover i forskellige tidsrum (2 og 1 sekunder) ved hjælp af time.sleep();
    • Da de kører parallelt, afslutter processen med den korteste forsinkelse først, selvom den blev startet efter den anden.
  • Proces-sammenkædning:

    • Metoden join() sikrer, at hovedprogrammet venter på, at begge processer er færdige, før det fortsætter;
    • Uden join() kunne hovedprogrammet afslutte, før processerne er færdige.

Dette eksempel viser, at med multiprocessing kan opgaver køre samtidigt på flere CPU-kerner, hvilket gør det ideelt til CPU-tunge operationer, der drager fordel af parallel udførelse.

question mark

Hvilken påstand beskriver bedst forskellen mellem tråde og processer i Python?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 3. Kapitel 4
some-alt