Program kadang harus mengerjakan banyak hal sekaligus. Kita akan membedah threading dan multiprocessing, memahami Global Interpreter Lock, dan belajar memilih model concurrency yang sesuai dengan jenis beban kerja.
Bedakan concurrency dan parallelism, kenali beban I/O-bound versus CPU-bound, dan petakan tiga model eksekusi Python.
Buka → # ThreadingPelajari threading.Thread, start dan join, berbagi data antar thread, serta daemon thread.
Buka → # Locks dan SynchronizationPahami race condition secara nyata, lindungi data bersama dengan Lock dan RLock, serta hindari deadlock antar thread.
Buka → # MultiprocessingJalankan kode di process terpisah dengan multiprocessing.Process untuk memanfaatkan banyak core pada kerja CPU-bound.
Buka → # Process PoolsKelola banyak worker sekaligus dengan multiprocessing.Pool: map, apply_async, imap_unordered, dan disiplin close/join.
Buka → # concurrent.futuresKuasai ThreadPoolExecutor dan ProcessPoolExecutor: submit, Future, as_completed, map, dan timeout untuk kode modern.
Buka → # Queue dan Worker PatternsBangun pola producer-consumer yang aman dengan queue.Queue, task_done, join, dan pola shutdown menggunakan sentinel.
Buka → # Global Interpreter LockPahami Global Interpreter Lock: mengapa thread tidak mempercepat kerja CPU dan mengapa thread tetap membantu I/O.
Buka → # Memilih Threading atau MultiprocessingPutuskan antara threading dan multiprocessing dengan tabel keputusan, benchmark yang jujur, dan checklist praktis.
Buka →