Rumah >pembangunan bahagian belakang >Tutorial Python >Python Multithreading dan Multiprocessing

Python Multithreading dan Multiprocessing

DDD
DDDasal
2024-12-25 11:11:10646semak imbas

Python Multithreading and Multiprocessing

1. Multithreading: Concurrency Ringan

Benang berjalan serentak dalam proses yang sama, berkongsi ruang memori. Global Interpreter Lock (GIL) Python mengehadkan urutan kepada satu pelaksanaan pada satu masa, menjadikannya sesuai untuk tugas terikat I/O tetapi bukan untuk yang intensif CPU.

Contoh: Program Berbenang Mudah

import threading

def print_numbers():
    for i in range(5):
        print(f"Number: {i}")

# Create and start threads
thread1 = threading.Thread(target=print_numbers)
thread2 = threading.Thread(target=print_numbers)

thread1.start()
thread2.start()
thread1.join()
thread2.join()

2. Multiprocessing: Paralelisme Benar

Pemprosesan berbilang mencipta proses berasingan dengan ruang ingatan individu, memintas GIL. Ini adalah yang terbaik untuk tugas terikat CPU, seperti pemprosesan data atau simulasi.

Contoh: Asas Berbilang Pemprosesan

from multiprocessing import Process

def print_numbers():
    for i in range(5):
        print(f"Number: {i}")

if __name__ == "__main__":
    process1 = Process(target=print_numbers)
    process2 = Process(target=print_numbers)

    process1.start()
    process2.start()
    process1.join()
    process2.join()

Bila Gunakan Yang Mana

  • Gunakan multithreading untuk tugasan seperti fail I/O, operasi pangkalan data atau permintaan rangkaian.
  • Gunakan pemprosesan berbilang untuk tugasan seperti pemprosesan imej, pembelajaran mesin atau analisis data.

Fikiran Akhir: Benang vs. Proses

Dengan benang, Python berbilang tugas dalam satu proses. Dengan proses, Python mencapai keselarian sebenar merentas pelbagai teras. Bersama-sama, mereka menjadikan kod anda cekap dan berskala.
_ ? Tahniah untuk menguasai konkurensi dalam Python!_

Atas ialah kandungan terperinci Python Multithreading dan Multiprocessing. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn