Kamis, 15 Desember 2011

Siklus Hidup Thread (Java)


Suatu thread bisa berada dalam salah satu kondisi berikut :

1. Baru : Objek thread baru saja dibuat, akan tetapi belum mulai dijalankan, sehingga belum bisa berbuat apa-apa.

2. Bisa-jalan : Artinya objek ini sudah dimulai dan sudah bisa dijalankan oleh mekanisme pembagian waktu oleh CPU. Sehingga thread ini bisa jalan kapan saja, selama diperintahkan oleh penjadwal thread.

3. Mati : suatu thread biasanya mati ketika selesai menjalankan metode run(). Sebelumnya, kita bisa memanggi metodestop(), akan tetapi program bisa berada dalam kondisi tidak stabil jika metode ini dipanggil. Kita akan lihat beberapa metode lain untuk menghentikan thread di bagian berikutnya.

4. Diblok : Thread seharusnya bisa berjalan, akan tetapi ada yang menghalanginya. Salah satunya adalah jika thread menunggu di bagian kritis sementara ada thread lain yang sedang menjalankan bagian kritis tersebut. Ketika suatu thread berada dalam kondisi diblok, penjadwal thread akan mengabaikannya dan tidak memberikan waktu CPU.

Bagaimana Suatu Thread Berada dalam Kondisi Diblok

 -Ketika suatu thread diblok, ada suatu alasan kenapa thread tersebut tidak bisa terus berjalan. Suatu thread dapat diblok karena beberapa alasan sebagai berikut :

- Kita memberi perintah thread untuk tidur dengan sleep(milidetik) sehingga thread tidak akan jalan dalam waktu yang sudah disebutkan
- Kita memerintahkan thread untuk menunggu dengan perintah wait(). Thread tidak akan dijalankan kembali hingga diberikan pesan notify() atau notifyAll().
- Thread sedang menunggu selesainya operasi I/O
- Thread mencoba memanggil metode dengan kata kunci synchronized, akan tetapi thread lain sedang memegang kuncinya.

Tidak ada komentar:

Posting Komentar