Logo id.removalsclassifieds.com

Perbedaan Antara Tidur dan Menunggu (Dengan Meja)

Daftar Isi:

Anonim

Java memiliki beberapa metode untuk melakukan tindakan tertentu. Metode adalah sekelompok kode, yang hanya berjalan ketika dipanggil; dan mungkin atau mungkin tidak mengembalikan hasil.

Metode seperti sleep dan wait digunakan untuk multithreading. Keduanya menjeda dan mengirim utas ke menunggu, tetapi memiliki perbedaan besar dalam fungsi.

Tidur vs Tunggu

Perbedaan antara metode sleep() dan wait() adalah bahwa metode sleep() digunakan dalam program untuk menjeda eksekusi utas saat ini untuk jangka waktu tertentu sementara metode wait() digunakan dalam program untuk menjeda atau menangguhkan utas saat ini hingga metode tertentu dipanggil.

Selama penggunaan metode tidur, utas saat ini tidak kehilangan kepemilikan monitor. Sleep adalah metode statis dan merupakan bagian dari utas kelas. Setelah waktu tunggu selesai, utas kembali ke status awal yang dapat dijalankan. Ini memastikan pemanfaatan penuh CPU, sambil menunggu.

Sedangkan metode wait() digunakan dalam program Java untuk memerintahkan utas saat ini untuk menunggu, hingga utas lain tidak dipanggil untuk objek itu. Utas kemudian melanjutkan dengan eksekusi, setelah mendapatkan kontrol dari monitor. Ini bukan metode statis tidak seperti tidur, dan merupakan bagian dari kelas objek.

Tabel Perbandingan Antara Tidur dan Menunggu

Parameter perbandingan Tidur Tunggu
Kelas Metode tidur adalah bagian dari kelas utas Metode wait adalah bagian dari kelas objek
Jenis metode Tidur adalah metode statis Tunggu bukan metode statis
Teknik panggilan Metode tidur dapat dipanggil dari luar konteks yang disinkronkan Metode tunggu hanya dapat dipanggil dari konteks yang disinkronkan
Pelepas kunci Metode tidur tidak melepaskan kunci pada objek, untuk batas waktu yang ditentukan, selama sinkronisasi Metode tunggu melepaskan kunci pada objek, untuk memiliki kesempatan untuk mengeksekusi, selama sinkronisasi
Pernyataan tidur batal statis publik () tunggu kekosongan terakhir publik ()

Apa itu tidur?

Thread sleep() adalah metode statis dalam program Java yang menangguhkan utas saat ini dan menempatkannya dalam status menunggu untuk jangka waktu yang ditentukan. Setelah status menunggu dan waktu selesai, kondisi utas diubah menjadi status yang dapat dijalankan. Dan kemudian menunggu CPU untuk eksekusi lebih lanjut.

Tujuan dari metode ini adalah untuk membuat penundaan selama beberapa detik dalam program dan secara bersamaan memiliki penggunaan CPU yang maksimal. Jika sistem sedang sibuk atau kelebihan beban maka waktu tunggu atau jeda lebih banyak dan sebaliknya akan kurang atau sama dengan waktu sebenarnya.

Metode pengembalian tipe tidur dapat dikatakan batal, karena tidak mengembalikan nilai apa pun. Utas tidur tidak kehilangan monitor atau mengunci utas yang telah diperolehnya. Jika bagaimanapun tidurnya terganggu, utas akan membuang Interrupted_Exception. Durasi sebenarnya di mana utas akan tidur biasanya tergantung pada penjadwal dan pengatur waktu sistem yang merupakan bagian dari sistem operasi.

Sintaks metode sleep adalah – public static void sleep (milidetik panjang)

public static void sleep (milidetik panjang, int nanodetik)

Di sini milidetik dan nanodetik adalah waktu di mana utas akan tidur.

Apa itu Tunggu?

Wait() adalah metode yang digunakan untuk komunikasi antar-utas. Kapan pun utas wait() digunakan, pemanggilan atau utas saat ini dijeda dan ditangguhkan, hingga metode seperti notify() atau notifyAll() dipanggil dalam sistem.

notify() metode akan membangunkan utas yang ditentukan sementara notifyAll() berlaku untuk setiap utas. Saat disinkronkan, metode wait memberikan kunci ke sumber daya. Tidak ada nilai kembalian dari metode Tunggu, maka dapat dikatakan bahwa ia mengembalikan batal.

Dua pengecualian dari metode Tunggu adalah Interrupted_Exception (ketika utas saat ini terputus selama tidurnya) dan IllegalMonitorStateException (bila utas saat ini bukan pemilik objek di monitor).

Metode Tunggu adalah bagian dari kelas objek. Metode ini hanya berlaku dan dapat dipanggil melalui blok yang disinkronkan. Metode tunggu membebaskan layar yang ditangguhkan atau dikunci, selama sinkronisasi. Dan metode Tunggu secara eksklusif memungkinkan beberapa utas yang disinkronkan untuk mengakses objek yang sama satu per satu.

Sintaks dari metode Wait adalah – public final void wait()

Perbedaan Utama Antara Tidur dan Menunggu

Kesimpulan

Metode Sleep and Wait adalah metode asli Java. Dan keduanya banyak digunakan untuk membuat utas yang sedang berlangsung saat ini masuk ke kondisi tidak dapat dijalankan. Kedua metode tersebut digunakan untuk multithreading dalam program.

Metode tidur menyediakan opsi eksklusif untuk mengunci layar untuk durasi waktu tertentu yang biasanya berlangsung dari nanodetik hingga milidetik. Tetapi metode wait mengunci atau menangguhkan layar hingga metode lain dipanggil, sehingga durasi waktu tidak tetap spesifik seperti selama penggunaan metode sleep.

Mereka membedakan satu sama lain dalam hal fungsi spesifik seperti kelas, metode, sinkronisasi dan durasi penguncian dan pelepasan dan beberapa parameter lainnya. Seringkali pemrogram bingung tentang metode mana yang ideal untuk tidur utas. Penggunaan metode tergantung pada persyaratan seperti kebutuhan, urgensi, dan periode waktu dari utas saat ini.

Perbedaan Antara Tidur dan Menunggu (Dengan Meja)