Akhirnya, liburan telah tiba, kini saatnya untuk saya menuliskan kembali tugas-tugas kuliah saya yang pernah saya pelajari agar bisa bermanfaat. Pada artikel kali ini saya akan membahas tentang Multithread di pemrograman Java.
Seperti halnya multitasking, ketika beberapa proses berbagi sumber daya umum pengolahan seperti CPU.Multi-threading memperluas fungsi dari multitasking ke dalam aplikasi di mana kita dapat membagi operasitertentu dalam satu aplikasi menjadi thread tersendiri. Setiap thread dapat berjalan secara paralel. OSmembagi waktu proses tidak hanya di antara aplikasi yang berbeda, tetapi juga di antara setiap thread yangterdapat dalam aplikasi.
Multi-threading memungkinkan kita untuk melkukan sesuatu dimana beberapa kegiatan dapat dilanjutkan secarabersamaan dalam program yang sama.
Penjelasan
New : Sebuah thread baru dimulai siklus hidupnya di state baru. Masih dalam keadaan ini sampai program thread dijalankan.
Runnable: Setelah thread baru dimulai, thread menjadi runnable (dapat dijalankan). Sebuah thread di state ini bisa melaksanakan tugasnya.
Waiting: Kadang-kadang,saat transisi perpindahan, thread akan mengalami fase dimana dia harus menunggu sementara saat thread yang lain berjalan. Sebuah transisi thread yang dalam kondisi waiting dapat kembali ke thread runnable hanya ketika thread lain memberi sinyal / informasi pada thread sedang dalam kondisi waiting tersebut untuk melanjutkan proses eksekusinya.
Timed Waiting (Jangka waktu tunggu) : Sebuah thread yang sedang dalam kondisi runnable dapat memasuki kondisi Timed Waiting untuk jangka waktu tertentu.
Dihentikan (Mati): Sebuah thread yang berada di fase runnable akan memasuki fase berhenti dan dihentikan ketika sudah menyelesaikan tugas.
Prioritas thread Java berada dalam kisaran antara MIN_PRIORITY (konstan dari 1) dan MAX_PRIORITY (konstan dari 10). Secara default, setiap thread diberikan prioritas NORM_PRIORITY (konstan dari 5). Thread dengan prioritas yang lebih tinggi berarti thread tersebut lebih penting dijalankan terlebih dahulu untuk sebuah program. Namun, prioritas thread tidak dapat menjamin urutan pengeksekusian thread, tergantung dari platform yang digunakan.
kemungkinan untuk thread dalam mengakses dan memodifikasi objek yang sama di memori pada saat yang bersamaan. Ketika hal itu terjadi , maka Java akan memunculkan sebuah exception.
Apa itu Multithread
Yaitu Thread yang multi :v. Jika dalam bahasa saya, yaitu ketika kita sedang menjalankan game di androidkemudian kita bisa juga membuka aplikasi lainnya.. itu multithread. Nah, mari kita bahas sedikit lebih dalam mengenai Java MultithreadJava - Multithread
Java merupakan bahasa pemrogramanan yang multi thread yang artinya kita bisa mengembangkan program multi thread menggunakan java. Sebuah program multi threaded mengandung dua atau lebih bagian perintah yang dapat dijalankan secara bersamaan dan setiap bagian dapat menangani tugas yang berbeda pada saat yang sama untuk mengoptimalkan penggunaan dari sumber daya yang tersedia, khususnya jika komputer yang kita miliki memiliki beberapa CPU.Seperti halnya multitasking, ketika beberapa proses berbagi sumber daya umum pengolahan seperti CPU.Multi-threading memperluas fungsi dari multitasking ke dalam aplikasi di mana kita dapat membagi operasitertentu dalam satu aplikasi menjadi thread tersendiri. Setiap thread dapat berjalan secara paralel. OSmembagi waktu proses tidak hanya di antara aplikasi yang berbeda, tetapi juga di antara setiap thread yangterdapat dalam aplikasi.
Multi-threading memungkinkan kita untuk melkukan sesuatu dimana beberapa kegiatan dapat dilanjutkan secarabersamaan dalam program yang sama.
Siklus dari pengeksekusian Thread
Sebuah thread berjalan melalui berbagai tahapan. Sebagai contoh, sebuah thread diciptakan, dimulai, berjalan, dan kemudian berhenti. Berikut diagram menunjukkan siklus pengeksekusian thread dari awal hingga akhir.New : Sebuah thread baru dimulai siklus hidupnya di state baru. Masih dalam keadaan ini sampai program thread dijalankan.
Runnable: Setelah thread baru dimulai, thread menjadi runnable (dapat dijalankan). Sebuah thread di state ini bisa melaksanakan tugasnya.
Waiting: Kadang-kadang,saat transisi perpindahan, thread akan mengalami fase dimana dia harus menunggu sementara saat thread yang lain berjalan. Sebuah transisi thread yang dalam kondisi waiting dapat kembali ke thread runnable hanya ketika thread lain memberi sinyal / informasi pada thread sedang dalam kondisi waiting tersebut untuk melanjutkan proses eksekusinya.
Timed Waiting (Jangka waktu tunggu) : Sebuah thread yang sedang dalam kondisi runnable dapat memasuki kondisi Timed Waiting untuk jangka waktu tertentu.
Dihentikan (Mati): Sebuah thread yang berada di fase runnable akan memasuki fase berhenti dan dihentikan ketika sudah menyelesaikan tugas.
Prioritas Thread pada Java
Setiap thread di Java memiliki prioritas yang membantu sistem operasi menentukan urutan thread untukdijalankan (dijadwalkan).Prioritas thread Java berada dalam kisaran antara MIN_PRIORITY (konstan dari 1) dan MAX_PRIORITY (konstan dari 10). Secara default, setiap thread diberikan prioritas NORM_PRIORITY (konstan dari 5). Thread dengan prioritas yang lebih tinggi berarti thread tersebut lebih penting dijalankan terlebih dahulu untuk sebuah program. Namun, prioritas thread tidak dapat menjamin urutan pengeksekusian thread, tergantung dari platform yang digunakan.
Kekurangan Multithread di Java
Adanya sinkronisasi , artinya ketika kita menjalankan program multithread ini akan membukakemungkinan untuk thread dalam mengakses dan memodifikasi objek yang sama di memori pada saat yang bersamaan. Ketika hal itu terjadi , maka Java akan memunculkan sebuah exception.
Nah jadi seperti itulah Multithrad pada pemrograman Java.. semoga bisa bermanfaat ya
atau jika ingin belajar tentang java bisa ke link ini Belajar Java
EmoticonEmoticon