Thread
Thread merupakan sebuah unit dasar dari utilisasi CPU . Di dalam sebuah thread terdapat Id thread ( Id thread berbeda dari PID ) , PC , Register , dan Stack . Dalam proses yang sama thread akan saling berbagi antar thread yang satu dengan yang lain. Apabila sebuah proses memiliki eksekusi multithreads , maka proses tersebut memungkinkan untuk menjalankan lebih dari satu tugas dalam waktu yang bersamaan.
Penerapan Thread dalam Kodingan
=> PENJELASAN
--------------------------------------------------------------------------------------------------------------------------
pthread_t tid[2];
--------------------------------------------------------------------------------------------------------------------------
Digunakan untuk menginisialisasi array yang digunakan untuk menampung thread . Dari contoh diatas , akan dibuat 2 thread .
--------------------------------------------------------------------------------------------------------------------------
void* playAndCount(void *arg)
--------------------------------------------------------------------------------------------------------------------------
Membuat fungsi yang akan digunakan untuk menjalankan thread.
--------------------------------------------------------------------------------------------------------------------------
if(pthread_equal(id,tid[0]))
{
system("clear");
for(iter=length;iter>0;iter--)
{
printf("%d",iter);
fflush(stdout);
sleep(1);
system("clear");
}
}
--------------------------------------------------------------------------------------------------------------------------
Membuat thread pertama , yang dalam hal ini digunakan untuk menghitung mundur tiap detik dari angka 5~1
--------------------------------------------------------------------------------------------------------------------------
else if(pthread_equal(id,tid[1]))
{
system("cvlc Firstlove.mp3");
}
--------------------------------------------------------------------------------------------------------------------------
Membuat thread kedua , proses yang dijalankan adalah menjalankan sebuah lagu yang berjudul First love dengan ekstensi (.mp3) menggunakan vlc ( dengan syarat PC harus sudah diinstall vlc ).
--------------------------------------------------------------------------------------------------------------------------
int main(void)
{
int i = 0;
int err;
while(i<2)
{
err = pthread_create(&(tid[i]), NULL, &playAndCount, NULL);
if(err!=0)
printf("\n can't create thread : [%s]", strerror(err));
else
printf("\n Thread created succesfully\n");
i++;
}
pthread_join(tid[0],NULL);
pthread_join(tid[1],NULL);
return 0;
}
--------------------------------------------------------------------------------------------------------------------------
Dan yang terakhir adalah membuat fungsi main ,
looping while yang pertama digunakan untuk menjalankan thread dan mengecek apakah thread terbuat atau tidak , dan menampilkan keterangan . Perulangan ini akan dilakukan 2x mengingat kita membuat 2 thread .
pthread_join ialah perintah agar thread dijalankan sampai selesai .
Jika pthread_join yang dibuat hanya "pthread_join(tid[0],NULL);" maka thread kedua yang menjalankan lagu akan dipaksa berhenti setelah countdown 5 detik dari thread pertama selesai.
Sekian Tutorial saya kali ini. Terima kasih sudah membaca , semoga bermanfaat .