GNU/Linux menggunakan POSIX Standard Thread API
Dikenal dengan nama pthread
Program dengan thread harus di-compile dengan option : -lpthread
Pembuatan Thread
Setiap thread dalam sebuah program diidentifikasi dengan thread ID
Type : pthread_t
Fungsi untuk membuat thread :
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
Parameter :
1 → thread ID
2 → thread attribute (NULL untuk default attribute)
3 → Fungsi yang ingin dijalankan
4 → Parameter untuk fungsi yang dijalankan
Contoh kode :
Passing Data ke Thread
Parameter ke-4 dari pthread_create adalah parameter yang akan dimasukkan ke fungsi yang dijalankan oleh suatu thread
Parameter ke-4 bertipe pointer void
Jika ada lebih dari 1 nilai parameter yang ingin digunakan, maka gunakanlah struct
Menanti Sebuah Thread
Thread akan dijadwalkan oleh sistem operasi
Pengguna tidak akan pernah tahu mana yang berjalan dahulu
Fungsi untuk menunggu eksekusi sebuah thread selesai :
int pthread_join(pthread_t thread, void **retval);
Parameter :
1 → thread ID yang ditunggu
2 → Variabel untuk menyimpan return value dari thread (NULL jika tidak dibutuhkan)
Fungsi penting lain:
Pthread_self() : Digunakan untuk mengetahui thread ID dari thread yang sedang aktif
Pthread_equal() : Membandingkan thread ID yang satu dengan yang lain, apakah sama atau tidak
Prime single-thread
0 komentar: