Thread dan Multithreading


🎯 Capaian Pembelajaran

Setelah mempelajari materi ini, mahasiswa diharapkan mampu:

  • Memahami konsep thread dalam sistem operasi
  • Membedakan proses dan thread
  • Menjelaskan arsitektur multithreading
  • Memahami model threading (user-level & kernel-level)
  • Menganalisis keuntungan dan tantangan multithreading

1. 🧠 Konsep Dasar Thread

1.1 Pengertian Thread

Thread adalah unit eksekusi terkecil dalam suatu proses.

πŸ“Œ Narasi:
Jika proses adalah β€œprogram yang berjalan”, maka thread adalah β€œjalur eksekusi” di dalam program tersebut.

Contoh:

  • Browser β†’ satu proses
  • Tab browser β†’ beberapa thread

πŸ–ΌοΈ Ilustrasi Thread dalam Proses

https://images.openai.com/static-rsc-4/3XXZqqzW2pTqUoPAnQMNk9h66ZMOiinHMPuoIrB-PXAx6nTPUyPZCg9BWIl5zCyv1FuFKrFKlKGXYQJLAlq8eFxivLLHP8dEXmtQbFAPPeVsg7HLGfbd7KG_4WkWiIMzpTpgf67BjmTF0dxBj9Gv26oMBGJIi-BO0WCRNZfSqIBOA98FUTZNvWFIPb6m7S0n?purpose=fullsize
https://images.openai.com/static-rsc-4/uTFaR2uqyx0SUqX2cMCkUjCDmkl2VK4ZL0LmEBYvVeyTsrTAtaBDlJm-R3kbyabOYF379C7XECRGILfCQHRLKr2CrHnlRbZ7TxR7MKAI2V_LVs0tXspY2ip7r1aErixum36arsTonHTohfYYWl98goz5-dpevjqy_HqgBBvwQRgEB9NNt1fFuYs7sWDqPtgf?purpose=fullsize
https://images.openai.com/static-rsc-4/IwQJKfNYr7-Kol9Re7NYBC1Cwz-1CvFhOV8LYbSXNq9_eFLwMAeZgQP0ZBRVheDENs_97YjRzzgeLdWQq3mBeI4uavkWhH31c56spaJHQPfB0FCrZr6siXjr1TtTotZOJLex14vi0QQcizP_yBZCMHAmJnnNjgK3oVipJhtZmIfbL5GeobEtzH7q_gwiYU5x?purpose=fullsize

10

πŸ“Œ Penjelasan:

  • Thread berbagi memori dalam satu proses
  • Setiap thread memiliki:
    • Program counter
    • Register
    • Stack

2. βš–οΈ Perbedaan Proses dan Thread

πŸ“Š Tabel Perbandingan

AspekProsesThread
Unit eksekusiBesarKecil
MemoriTerpisahBerbagi
KomunikasiLambatCepat
OverheadTinggiRendah
ContohAplikasiTask dalam aplikasi

🧠 Narasi:

  • Proses seperti rumah
  • Thread seperti penghuni dalam rumah

3. πŸ”„ Multithreading

3.1 Pengertian

Multithreading adalah kemampuan sistem untuk menjalankan beberapa thread dalam satu proses secara bersamaan.


πŸ–ΌοΈ Diagram Multithreading

https://images.openai.com/static-rsc-4/TpvSaQ4qodhcLjNPlbMQagDFODYmzU2mq3YlF0KeLQJotzttVM4PN1ue5rhCgPGi_iwl3GBHNRyrQQR7aNLuL1yYAxErKD1XE3FoYCOPdOfy1Pdso8UyEF4azWVPHd5TNMP9eHiG6kcS3E1RsaAykCQTgz1tWnSfHlfLdZIFkLcru5G_O0z_ZzwLdBTpr60m?purpose=fullsize
https://images.openai.com/static-rsc-4/Hd7Jt24z4rRNtIY3yc1IOmvQn9dYDNUXN7stM9lpsma04tL8ykUvYOjX8fBMudhAsnYYFMz-p7cYP6uowjlPZaGHMN_Or-oRhmRCxoIf-LwnHY8Beehf_0eAgK3GHy1Hovs198bt_mAiHvA_OTZspcojYX_jNDUZccJt29NmGzUvT-fWuryK2QpO8Wa7L8au?purpose=fullsize
https://images.openai.com/static-rsc-4/PaYCYYztmLxM1NBDQmu8Qfwpqr8UZl0vJYZ9JYUeSPdz_OC8r3r6ozWDjqHhemYqCMB2rkSwUeLNHAJjvzVtU_shOcLReBvLUzpr9Syugo_x0RCpb8V9oryS0CyGj8u2jYcg_XhKQSZkSVMmIKb0iBwPlHKWcLfz7ppncAsxvxJGt7PRQrwC2GBVQpQ0AYdz?purpose=fullsize

8


🧠 Narasi:

Multithreading membuat aplikasi:

  • Lebih responsif
  • Lebih efisien
  • Lebih cepat

4. 🎯 Manfaat Multithreading

4.1 Responsiveness

Aplikasi tetap berjalan meskipun satu thread sibuk

4.2 Resource Sharing

Thread berbagi memori

4.3 Economy

Lebih hemat dibanding proses

4.4 Scalability

Memanfaatkan multi-core CPU


5. 🧡 Model Multithreading


5.1 User-Level Thread (ULT)

πŸ–ΌοΈ ULT Diagram

https://images.openai.com/static-rsc-4/OpWpBmE30DrQHz-7bhhk9PPpXh3buPryoAJQOsFctaAZAGqGX_qifTix-m30fizPKmgpt0M3FyL8F6FRfEKlIQF4SjohZlscDaJ5naJp8KvTVpPcVmkTINswzfjp7echhvyj1A8CUnx3t9igo7tJ25nUgwNF9HAMhLiII1Ki-BZuHH0hhZU7qhI8ivM8SDKv?purpose=fullsize
https://images.openai.com/static-rsc-4/HsbH8dV2PzlbE30iuqihc93sqzXMlIznrnJR3frHjayrCVJjnFaw0Z-3jIh_DUxdZcseEiCROW74BXSfsXBg4ANGfLMOxcHnjViqeFy7tLcC0PmrnHs7MPBXm85G2IFyrbu0jKd9Tt3AsLThvFoVAoV9yRamvL8KLsi0WkQuS__V3V5aQexUvrZ1Z97kl2DW?purpose=fullsize
https://images.openai.com/static-rsc-4/XK9LE0bEwnWs0AMN0LmhiQNlgjQUOwKEg8iGKtgdzSxotieBixVVwaBs9vwJ6PoNoP_OmvnV4JxqSUEPopm6cxGghIf3ctDFg38RCsyuhQJaCgWP_W8QdrRqV2DsApdOproeAM7s4W29idtPIWaYS7JqrMmA2Z1X7ib7JEWNE6KBu7aeW9ZTtNPTj4Zx4hEm?purpose=fullsize

6

🧠 Penjelasan:

  • Dikelola oleh user (library)
  • OS tidak mengetahui thread

βœ… Kelebihan:

  • Cepat
  • Tidak perlu kernel

❌ Kekurangan:

  • Jika satu thread blocking β†’ semua ikut berhenti

5.2 Kernel-Level Thread (KLT)

πŸ–ΌοΈ KLT Diagram

https://images.openai.com/static-rsc-4/MxDxudduaoGlLnpK8O73s6yGoOsVNq1OSCF_lTnqJTquk0Iw4MLB_ORTHTY8_kqTRd8qeOPK7WRf5U3mrjK6S5JA72mG5t13LWY1Rwm1oPVhY6Mr3y0-FGI6V4j-5Qsp14HOUcktuQOor9f3eTunFOFDQ6-FmFVwqTuiP97nJVDHki1MzjCr3jc3IgsBExAb?purpose=fullsize
https://images.openai.com/static-rsc-4/HsbH8dV2PzlbE30iuqihc93sqzXMlIznrnJR3frHjayrCVJjnFaw0Z-3jIh_DUxdZcseEiCROW74BXSfsXBg4ANGfLMOxcHnjViqeFy7tLcC0PmrnHs7MPBXm85G2IFyrbu0jKd9Tt3AsLThvFoVAoV9yRamvL8KLsi0WkQuS__V3V5aQexUvrZ1Z97kl2DW?purpose=fullsize
https://images.openai.com/static-rsc-4/pJqy5-tdsh6M61kwKNTonmUN2ad2tbdCcSaBlQM3ZrImHhtQJHIRD93IAMuGYz8QH7ga1CDQNFrmRhzglKZB8MsIXhBNCbIdC4WufowSHJvJTK63eF1IhxVLvBnJYX3PQjFDFXX7raVEalviGiisVHvMLxBMzJ21Md-UK7BakoQvZWwgUhNN2IKTn9NnPnte?purpose=fullsize

7

🧠 Penjelasan:

  • Dikelola oleh OS

βœ… Kelebihan:

  • Lebih stabil
  • Bisa berjalan paralel

❌ Kekurangan:

  • Overhead tinggi

5.3 Model Hybrid

πŸ–ΌοΈ Hybrid Thread Model

https://images.openai.com/static-rsc-4/ib9DhiBDIAG5beQrkAq-ROnjIWSeeC85W2UK6eihEQaUyjKDNePkoBIiiwwnYPonK0FU4FBNmE43it3EAGrEJili0YWTTrI4XlTxykW9E6RUM7qiZmfrP3Rc6yp2DOOfS9RAzHmJrreOroXd7oT7a6yYVCPq8M4k1IuelIifiVgmbdoCX4XA_XrxJnnsjqA9?purpose=fullsize
https://images.openai.com/static-rsc-4/cMn-TFKtemd54sodil1J7O-rrOopRwNCoJwRx5aO5bCS2vaCH2m2SPOk8u2DFl5b0NwW51_3NJCyzfX6fvytX-e6Ojqalnpy7FUBdWwaX5Y4yj3azRdVi7O9MzCu00Kb_OmxpR2wCOBZWgOXiiUEEB1woKJMk7sws67qVFfSvW-gKySztJjrleT4zLEWjH3j?purpose=fullsize
https://images.openai.com/static-rsc-4/JoOeKzRDq8y2xzS6QWxMQMB5LFDVJwJRtFs-KzW0890FCL-qbrYrnESIuctWBukDbrY3kGw85p-nWyu6hymJk54sBuPQYMJZE1rUkvFJnn_dR27Grt06XKLbDpy2MJl16MV0r_qoeqNWQnAXr98pMPn0mvZTpY4XSnJXoOxVu4_2nT6LePkIxLwTgHucmBWT?purpose=fullsize

6

🧠 Penjelasan:

Gabungan ULT dan KLT


πŸ“Š Perbandingan Model Thread

ModelKelebihanKekurangan
ULTCepatTidak paralel
KLTParalelOverhead
HybridFleksibelKompleks

6. πŸ”— Multithreading vs Multiprocessing

πŸ–ΌοΈ Perbandingan

https://images.openai.com/static-rsc-4/y3MxR-NCuIK1E05QoMjFfFsgwC6s5gytBDIy90272Rrq6oRHP43qgvB78nWL0wLqnXgVjEZnB9O_-cjbrxNjnuY1J5TXt7lkBjhQYxcAfYcnk_og1piaa3O9O-YkOigbuPQlBGLm9PEESUfVHaAKmtM5IxYNSAgAzQEdEqu24_y6cJ_YtZVv_JDhhmkjjBhM?purpose=fullsize
https://images.openai.com/static-rsc-4/04qckfo7zzu0W-YvajLkiApbTEBl-3VlitzsxVd1_fXRC2DhRR9ZUHkFcQgFRzGF-m-gXLKi_RDJZB8xsxZJzh_7MzRpjIsjAS1ZVAogETbULF_FgG0lll8rnSKn-or3Jw-Q3GvkbxPbFxsjffEM8jaodz_GVm15R0hiscRKaCjd8oWNcKDJtUXukBeGvZed?purpose=fullsize
https://images.openai.com/static-rsc-4/EgDkfSCC1MYseoFQTQWus4kuBvke7Gio-UE2_Zz0wUciKx3E7KPEK52S6BS-omELZh3RN78QWNiTlYxvmRPrccXRxFbq5nNKMa9Ixh01Ol-0pdxQ2ea6fYAt3M-0stCTImmNmE6P85WWSTVJUxh_3O5fAJ4_Gn99gZk-3uLaMV2nEfEBlZv-vBPcLcWX56lS?purpose=fullsize

6

πŸ“Š Tabel Perbandingan

AspekMultithreadingMultiprocessing
MemoriSharedTerpisah
KecepatanLebih cepatLebih lambat
KompleksitasTinggiLebih sederhana
SkalabilitasTinggiSangat tinggi

7. ⚠️ Masalah dalam Multithreading

7.1 Race Condition

Beberapa thread mengakses data yang sama


7.2 Deadlock

Thread saling menunggu


7.3 Starvation

Thread tidak mendapat resource


🧠 Narasi:

Multithreading meningkatkan performa, tetapi juga meningkatkan kompleksitas.


8. πŸ’» Implementasi Nyata

Contoh:

  • Web server (multi-threaded)
  • Game
  • Aplikasi mobile

Bahasa Pemrograman:

  • Java β†’ Thread API
  • Python β†’ threading
  • C/C++ β†’ pthread

9. 🧠 Studi Kasus

Kasus:

Aplikasi download manager

πŸ“Œ Analisis:

  • Thread 1 β†’ download file 1
  • Thread 2 β†’ download file 2
  • Thread 3 β†’ update UI

➑ Semua berjalan bersamaan


10. πŸ§ͺ Contoh Sederhana (Python)

import threadingdef tugas():
print("Thread berjalan")t1 = threading.Thread(target=tugas)
t1.start()

11. πŸ“ Latihan

  1. Apa perbedaan proses dan thread?
  2. Jelaskan multithreading!
  3. Apa kelebihan ULT?
  4. Apa masalah dalam multithreading?

🎯 Kesimpulan

  • Thread adalah unit eksekusi terkecil
  • Multithreading meningkatkan efisiensi
  • Ada berbagai model thread
  • Perlu perhatian pada sinkronisasi

πŸš€ Pengembangan Materi Selanjutnya

➑ Sinkronisasi Proses
➑ Deadlock
➑ Manajemen Memori