Selamat datang kembali pada tutorial Linux yang ke-5. Kali ini saya akan
membahas sesuatu yang bekerja hampir seperti Process yang telah saya jelaskan sebelumnya. Jika hanya dapat
dijalankan sebuah process pada satu
waktu, maka berbeda dengan thread yang dapat dijalankan bersama – sama dalam
satu waktu. Thread dapat diartikan
sebagai bagian – bagian kecil dari process.
Karena sifatnya yang dapat berjalan bersama – sama thread dapat banyak kita manfaatkan untuk menjalankan hal – hal yang
kita inginkan dengan lebih mudah. Cara penggunaan thread dibagi menjadi dua,
yaitu :
Single Threading
Sebuah process yang hanya memliki satu buah thread di dalamnya. Biasanya hal ini digunakan sebagai pengendali jalannya process.
Multi Threading
Sebuah process yang memiliki lebih dari satu thread di dalamnya.
Dibawah ini adalah contoh cara penggunaan thread dalam bahasa C. Disini saya akan membuat sebuah music
player. Berikut pembuatannya:
Pertama kita masukkan library untuk penggunaan thread dalam C
#include <pthread.h>
Kemudian kita deklarasikan banyak thread yang kita ingin gunakan
Pthread_t tid[6];
Kemudian kita buat sebuah fungsi yang berisi fungsi – fungsi thread
void* playandcount(void *arg){
unsigned
long i=0;
pthread_t
id=pthread_self();
int
iter;
if(pthread_equal(id,tid[1])){
system("clear");
printf("\nHelp
List\n");
printf("Press
the below number to execute command\n");
printf("1===Show
Help command\n");
printf("2===Show
playlist\n");
printf("3===Play\n");
printf("4===Pause
after x sec\n");
printf("5===Continue
after x sec\n");
printf("6===Stop
after x sec\n");
}
else
if(pthread_equal(id,tid[2])){
system("clear");
system("ls
Playlist | grep .mp3");
}
else
if(pthread_equal(id,tid[3])){
system("clear");
chdir("Playlist");
snprintf(music,
sizeof(music), "mpg123 %s", lagu);
system(music);
}
else
if(pthread_equal(id, tid[4])){
system("clear");
for(j=n;j>=0;j--)
{
printf("%d\n",
j);
sleep(1);
system("clear");
}
system("pkill
-STOP mpg123");
}
else
if(pthread_equal(id, tid[5])){
system("clear");
for(j=n;j>=0;j--)
{
printf("%d\n",
j);
sleep(1);
system("clear");
}
system("pkill
-CONT mpg123");
}
else
if(pthread_equal(id,tid[6])){
system("clear");
for(j=n;j>=0;j--)
{
printf("%d\n",
j);
sleep(1);
system("clear");
}
system("pkill
mpg123");
}
return
NULL;
}
Setiap fungsi pthread equal dalam
if mewakili satu buah thread bila dieksekusi. Kemudian berikut fungsi main
int main(void){
system("clear");
while(1){
int
flag=0;
int
comm;
int
i=0;
int
err
scanf("%d",
&comm);
getchar();
if(comm==4
|| comm==5 || comm==6)
scanf("%d",
&n);
else
if(comm==3)
scanf("%s",
lagu);
printf("\n\n");
if
(err!=0) //Error
Checking pada thread
printf("\ncan't
create thread : [%s]", strerror(err));
else{ //Membuat
thread jika berhasil
err=pthread_create(&(tid[comm]),
NULL, &playandcount, NULL);
}
}
return
0;
}
Nah, selesai sudah penjelasan saya mengenai thread dan penggunaannya.
Semoga dapat banyak bermanfaat bagi kalian semua. Terima kasih. Sampai jumpa
lagi…….
Tidak ada komentar:
Posting Komentar