Pengertian :
Thread adalah Alur control dari sebuah proses.
Proses adalah Suatu kondisi ketika suatu program di eksekusi
Dengan kata lain , proses terdiri dari beberapa thread.
Perbedaan thread dan proses :
-
Waktu pembuatan : pembuatan thread lebih cepat daripada pembuatan proses.
-
Waktu mengakhirinya : thread lebih gampang di akhiri daripada proses.
-
Thread
menggunakan alamat dari proses yang mebuatnya dan alamat tersebut dapat
diakses bersamaan oleh beberapa thread . Sedangkan proses , tiap proses
memiliki alamatnya sendiri-sendiri
- Thread
memiliki akses langsung ke segemen data dari prosesnya. Masing-masing
proses memiliki salinan segmen data dari parent process-nya.
- Thread dapat saling komunikasi dengan thread lain dalam satu process. Antar proses harus menggunakan komunikasi antar proses.
- Thread hampir tidak memiliki overhead. Proses memiliki overhead.
- Thread
dapat memiliki pengaruh kontrol yang besar terhadap thread lain dalam
satu proses. Proses hanya dapat mengendalikan proses anakannya.
- Perubahan
pada thread utama seperti pembatalan atau perubahan prioritas dapat
mempengaruhi tingkah laku thread lain dalam satu proses. Perubahan pada
parent proses tidak mempengaruhi proses anak(child process).
Ada 2 macam thread
- User level thread
- Thread yang pengaturannya dilakukan oleh library thread pada tingkatan pengguna. Karena library yang menyediakan fasilitas untuk pembuatan dan penjadwalan thread, thread pengguna cepat dibuat dan dikendalikan.
- Kernel level thread
- Thread
yang didukung langsung oleh kernel. Pembuatan, penjadwalan dan
manajemen thread dilakukan oleh kernel pada kernel space. Karena
dilakukan oleh sistem operasi, proses pembuatannya akan lebih lambat
jika dibandingkan dengan user level thread.
Sebagai tambahan , berikut cara membuat thread sederhana dalam bahasa C di LINUX
>>Berikut cara meng-compile code tersebut dan output dari code di atas:
1. pindah ke direktori dimana source code di simpan
2. masukkan code seperti gambar di bawah , (coba -> adalah nama file
yg bisa dieksekusi , seperti .exe , nyoba.c adalah nama source code ,
namanya bisa diganti)
output tidak akan selalu begitu , karena kecepatan thread di setiap komputer berbeda”
Selamat mencoba , dan Terima kasih sudah membaca ^^
Komentar
Posting Komentar