Sabtu, 07 November 2015

THREAD TUTORIAL

Kali ini kita akan mempelajari tentang thread . Apa itu thread ? Baca Penjelasan ringkasnya dibawah ini .

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 .