Jika kalian
sedang mencari suatu cara dengan bahasa c yang mana kalian ingin
membaut beberapa proses berjalan bersamaan, nah kalian berada di
tempat yang sangat tepat! Ya kalian bisa memanfaatkan thread disini.
Nah sebentar, thread itu apa sih? Seperti kata kata mainstream
biasanya, yakni tak kenal maka tak sayang, kita kenalan dahulu sama
yang namanya thread ini.
Thread itu alur control dari sebuah proses.
Atau ada yang
berkata sebagai berikut
Thread dalam sistem operasi dapat diartikan sebagai sekumpulan perintah (instruksi) yang dapat dilaksanakan (dieksekusi) secara sejajar dengan ulir lainnya, dengan menggunakan cara time slice (ketika satu CPU melakukan perpindahan antara satu ulir ke ulir lainnya) atau multiprocess (ketika ulir-ulir tersebut dilaksanakan oleh CPU yang berbeda dalam satu sistem).
Lalu
bagaimana cara membuat thread?
Secara
sederhana thread sendiri bisa dibuat dengan cara seperti ini :
disini
percobaannya saya akan membuat sebuah program sederhana dan ketika
menjalankan program tersebut, akan diiringi dengan sebuah lagu.
#include<iostream>//instruksi pertama utuk play lagu bernama music yang berada di folder yang sama dengan code di compilevoid *playmusic(){system("cvlc music.wav");}//instruksi kedua, dimana kita akan mencoba untuk menjawab pertanyaan matematika sederhanavoid *berhitung(){int level=0;int a,b,c;srand((unsigned)time(NULL));while(1){if(level==0){a=rand()%100;b=rand()%100;system("clear");printf("Berapakah hasil dari operasi matematika berikut?\n");printf("%d + %d = ",a,b);scanf("%d",&c);if(a+b == c){printf("YEY! Jawaban Anda Benar! Anda Berhak melaju ke tahap selanjutnya!\n");sleep(1);level++;}else printf("Ayo coba lagi! Kamu pasti bisa!\n");sleep(1);system("clear");}if(level==1){a=rand()%15;b=rand()%15;printf("Berapakah hasil dari operasi matematika berikut?\n");printf("%d x %d = ",a,b);scanf("%d",&c);if(a*b == c){printf("YEY! Jawaban Anda Benar! Anda Berhak melaju ke tahap selanjutnya!\n");sleep(1);level++;}else printf("Ayo coba lagi! Kamu pasti bisa!\n");sleep(1);system("clear");}if(level==2){do{a=rand()%150;b=rand()%20;}while(a%b!=0 && a>=15 && b>=3);printf("Berapakah hasil dari operasi matematika berikut?\n");printf("%d : %d = ",a,b);scanf("%d",&c);if(a/b == c){printf("YEY! Jawaban Anda Benar! Anda Berhak melaju ke tahap selanjutnya!\n");sleep(1);level++;}else printf("Ayo coba lagi! Kamu pasti bisa!\n");sleep(1);system("clear");}if(level==3){a=rand()%150;b=rand()%15;printf("Berapakah hasil dari operasi matematika berikut?\n");printf("%d mod %d = ",a,b);scanf("%d",&c);if(a%b == c){printf("YEY! Jawaban Anda Benar! Anda telah menyelesaikan game ini!\n");sleep(1);level=0;}else printf("Ayo coba lagi! Kamu pasti bisa!\n");sleep(1);system("clear");}}}//main programint main(){pthread_t threadsatu, threaddua;//ini adalah tahap membuat type data thread, disini saya membuat dua thread dengan nama threadsatu dan thread dua.pthread_create (&threadsatu, NULL, playmusic, NULL);//ini bagian membuat thread, nah ini saya akan membuat thread yang akan menjalankan sebuah fungsi yang bernama playmusicpthread_create (&threaddua, NULL, berhitung, NULL);//thread yang ini akan mengeksekusi fungsi yang saya namai berhitungnah lalu kita join kedua thread tersebut agar bisa berjalan bersamaan//maksud saya berjalan bersamaan disini, cara kerjanya adalah dua instruksi //dijalankan bersamaan, dan ketika ada salah satu thread yang belum selesai dalam mengerjakan instruksi nya maka akan menunggu semua thread selesai mengerjakan instruksinya, dan ketika sudah selesai semua, baru thread diakhiri}
nah dari program diatas akan menghasilkan sebuah program yang menggunakan thread.
Ya begitulah apa yang bisa saya sampaikan sekarang, apabila ada yang saya pelajari lebih lanjut, maka akan saya tambah di post post selanjutnya, semoga post ini bisa berguna untuk kalian yang sedang belajar.
Sekian.
Tidak ada komentar:
Posting Komentar