Thread Pada Linux
Thread merupakan sekumpulan baris instruksi yang alurnya berjalan secara sekuensial di prosesor. Secara sederhana thread adalah bagian dari suatu proses atau bisa juga disebut sebagai proses kecil.
1. GNU/Linux menggunakan POSIX Standar Thread API
Dikenal dengan pthread
2. Program dengan thread harus di-compile dengan "-lpthread"
Contoh : gcc testhread.c -o thread -lpthread
Program diidentifikasikan dengan thread ID
-Type data : pthread_t
2. pthread_mutex_t = tipe data mutex thread
3. pthread_create = int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg);
Parameter : pertama = thread ID
Kedua = thread atribut (NULL untuk default atribut)
Ketiga = thread yang ingin dijalankan
Keempat = parameter untuk fungsi yang dijalankan
Fungsi yang digunakan untuk menciptakan thread baru dalam suatu proses dengan atribut ditentukan oleh attr. Jika attr diisi NULL, atribut default akan dimuat. Jika pemanggilan fungsi berhasil, fungsi akan menyimpan ID dari thread ciptaan pada rujukan yang ditunjuk thread
4. pthread_detach = int pthread_detach(pthread_t thread);
Fungsi ini digunakan untuk mengindikasikan pada implementasi bahwa ruang penyimpanan thread pada thread bisa diminta kembali ketika thread berakhir.
5. pthread_cancel = int pthread_cancel(pthread_t thread);
Fungsi ini digunakan untuk meminta agar thread dibatalkan. Kondisi kemampuan membatalkan dan tipedari thread yang dituju menentukan kapan pembatlan terjadi.
6. pthread_mutex_lock = int pthread_mutex_lock(pthread_mutex_t *mutex);
Fungsi ini digunakan untuk mengunci objek mutex yang dirujuk oleh mutex. Jika mutex sudah dikunci, thrad pemanggil akan ditahan hingga mutex menjadi tersedia (tidak terkunci). Operasi ini mengembalikan objek mutex yang dirujuk oleh mutex pada keadaan terkunci dengan thread pemanggil sebagai pemiliknya.
7. pthread_mutex_unlock = int pthread_mutex_unlock(pthread_mutex_t *mutex);
Fungsi ini berguna untuk membebaskan objek mutex yang dirujuk mutex. Bagaimana cara mutex dibebaskan tergantung dari tipe atribut mutex
8. pthread_mutex_destroy = int pthread_mutex_destroy(pthread_mutex_t *mutex);
Fungsi ini menghancurkan objek mutex yang dirujuk oleh mutex, sehingga objek tersebut menjadi tidak terinisialisasi.
Berikut adalah contoh Program Thread untuk memeriksa Bilangan Prima:
1. GNU/Linux menggunakan POSIX Standar Thread API
Dikenal dengan pthread
2. Program dengan thread harus di-compile dengan "-lpthread"
Contoh : gcc testhread.c -o thread -lpthread
Program diidentifikasikan dengan thread ID
-Type data : pthread_t
Fungsi-fungsi programming pthread :
1. pthread_t = tipe data thread
1. pthread_t = tipe data thread
2. pthread_mutex_t = tipe data mutex thread
3. pthread_create = int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg);
Parameter : pertama = thread ID
Kedua = thread atribut (NULL untuk default atribut)
Ketiga = thread yang ingin dijalankan
Keempat = parameter untuk fungsi yang dijalankan
Fungsi yang digunakan untuk menciptakan thread baru dalam suatu proses dengan atribut ditentukan oleh attr. Jika attr diisi NULL, atribut default akan dimuat. Jika pemanggilan fungsi berhasil, fungsi akan menyimpan ID dari thread ciptaan pada rujukan yang ditunjuk thread
4. pthread_detach = int pthread_detach(pthread_t thread);
Fungsi ini digunakan untuk mengindikasikan pada implementasi bahwa ruang penyimpanan thread pada thread bisa diminta kembali ketika thread berakhir.
5. pthread_cancel = int pthread_cancel(pthread_t thread);
Fungsi ini digunakan untuk meminta agar thread dibatalkan. Kondisi kemampuan membatalkan dan tipedari thread yang dituju menentukan kapan pembatlan terjadi.
6. pthread_mutex_lock = int pthread_mutex_lock(pthread_mutex_t *mutex);
Fungsi ini digunakan untuk mengunci objek mutex yang dirujuk oleh mutex. Jika mutex sudah dikunci, thrad pemanggil akan ditahan hingga mutex menjadi tersedia (tidak terkunci). Operasi ini mengembalikan objek mutex yang dirujuk oleh mutex pada keadaan terkunci dengan thread pemanggil sebagai pemiliknya.
7. pthread_mutex_unlock = int pthread_mutex_unlock(pthread_mutex_t *mutex);
Fungsi ini berguna untuk membebaskan objek mutex yang dirujuk mutex. Bagaimana cara mutex dibebaskan tergantung dari tipe atribut mutex
8. pthread_mutex_destroy = int pthread_mutex_destroy(pthread_mutex_t *mutex);
Fungsi ini menghancurkan objek mutex yang dirujuk oleh mutex, sehingga objek tersebut menjadi tidak terinisialisasi.
Berikut adalah contoh Program Thread untuk memeriksa Bilangan Prima:
Komentar
Posting Komentar