Senin, 05 Januari 2015

..about THREAD..




Thread adalah sebuah alur kontrol dari sebuah proses (program yang dieksekusi sedang dijalankan). Merupakan jalur eksekusi tunggal dengan stack eksekusi, status processor, dan informasi penjadwalan. Thread dapat melakukan lebih dari satu pekerjaan pada waktu yang sama. Bedanya thread dengan proses adalah pembentukan thread yang membutuhkan waktu lebih sedikit dari proses, waktu yang digunakan untuk mengakhiri thread juga lebih sedikit dari proses, dan lebih mudah serta cepat untuk melakukan switch antara thread daripada switch antara proses.
Keuntungan menggunakan thread adalah
  • Memerlukan waktu pembuatan thread baru yang jauh lebih singkat proses baru.
  • Pemberhentiannya memerlukan waktu yang lebih singkat.
  • Memerlukan waktu yang lebih singkat untuk beralih dari satu thread ke thread lain dalam satu proses.
  • Selama sejumlah thread berada pada proses yang sama dan saling berbagi memori, maka thread dapat berkomunikasi tanpa melibatkan kernel
Sedangkan Multithread adalah suatu kemampuan yang memungkinkan beberapa kumpulan instruksi (proses) dijalankan secara bersamaan (time slicing) dalam sebuah program. Ada 3 macam model multithreading yaitu
1. Many to one
  • Banyak user thread yang dipetakan ke single kernel
  • Thread dikontrol dari ruang user
  • Tidak bisa berjalan pada multiprosesor
  • contohnya : Solaris Green Threads,GNU Portable Threads




2. One to one
  • Setiap user thread dipetakan ke kernel thread
  • Jumlah dari user thread sifatnya terbatas
  • contoh : Windows NT/XP/2000, Solaris 9, Linux    
3. Many to many

  •  Memperbolehkan banyak thread yang dipetakan ke banyak prosesor.
  • Contoh : Solaris prior version 9
 
 
 


Deklarasi Thread




Pada dasarnya, setiap program yang dijalankan dan menjadi proses, ia akan mempunyai default thread.




Keterangan :

  • &thread = alamat dari variabel yang kita deklarasi, berupada ID thread yang baru dibuat
  • NULL (yang pertama) = atribut yang kita ingin tambahkan ke thread
  • print_message_functionX = alamat fungsi yang akan dijalankan oleh thread
  • NULL (yang kedua) = parameter yang akan di pass ke fungsi
Contoh program sederhana menggunakan thread
 
 Output  dari program sederhana diatas adalah

 

    Tidak ada komentar:

    Posting Komentar