A. Thread di LINUX (C language)
Thread di Linux menggunakan POSIX (Portable Operating System Interface for UNIX) standard Thread API. POSIX adalah adalah sebuah standar yang dicetuskan oleh IEEE (Institute of Electrical and Electronics Engineers yang mendefinisikan sekumpulan layanan dalam sistem operasi. Oleh karena itu, program dengan thread di Linix harus dicompile dengan option -lpthread. Library untuk thread sendiri adalah #include<pthread.h>
B. Pembuatan Thread
Thread mempunyai Thread ID dengan type pthread_t. Untuk membuat thread, kita harus menggunakan fungsi :int pthread_create (pthread_t *thread, const pthread_attr_t *attr, void* (*namafungsi)(*void), void *arg);
Penjelasan parameter:
- pthread_t *thread = thread ID
- const pthread_attr_t *attr = thread attribute (NULL untuk default attribute)
- void* (*namafungsi) (*void) = nama fungsi yang akan dijalankan oleh thread
- void *arg = parameter untuk fungsi yang dijalankan. Apabila parameter yang dibutuhkan banyak, maka harus menggunakan struct
C. Menunggu Thread
Pengeksekusian thread tidak dapat dikontrol oleh user, karena penjadwalan thread akan dilakukkan oleh OS. Oleh karena itu user tidak tahu kapan thread akan dieksekusi. Untuk menanggulangi hal itu, maka digunakan pthread_join yang bertujuan untuk menunggu suatu pengeksekusian thread selesai, baru thread yang lain akan dijalankan.
pthread_join (pthread_t thread, void **retval);
Penjelasan parameter:
- pthread_t *thread = thread ID
- void **retval = return value dari fungsi yang dipanggil.
D. Membatalkan Thread
Untuk membatalkan pengeksekusian sebuah thread, bisa menggunakan perintah pthread_cancel.
pthread_cancel (pthread_t thread)
Penjelasan parameter:
Library pthread.h juga menyediakan perintah :
pthread_cancel (pthread_t thread)
Penjelasan parameter:
- pthread_t *thread = thread ID
- PTHREAD_CANCEL_ENABLE untuk membuat sebuah thread dapat dicancel
- PTHREAD_CANCEL_DISABLE untuk membuat sebuah thread tidak dapat dicancel
E. Keluar dari Thread
Untuk keluar dari sebuah thread, bisa menggunakan perintah pthread_exit. pthread_exit diletakkan pada akhir sebuah fungsi (routine)
pthread_exit(void *value_ptr)
Penjelasan parameter:
- void *value_ptr = return value dari parameter suatu thread
E. Membandingkan (compare) Dua Thread
Untuk membandingkan dua buah thread bisa menggunakan pthread_equal. JIka thread sama maka akan mengembalikan return value tidak 0, dan 0 apabila kedua thread tidak sama.
pthread_equal(pthread_t thread1,pthread_t thread2);
Penjelasan parameter:
- pthread_t thread1 = thread ID dari thread 1
- pthread_t thread2 = thread ID dari thread 2
0 komentar:
Posting Komentar