Tidur dan Menunggu – Tabel Perbedaan mereka yang mendasar

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 bukanlah metode statis

Teknik panggilan

Metode tidur dapat dipanggil dari luar konteks yang disinkronkan

Metode tunggu hanya dapat dipanggil dari konteks yang disinkronkan

Pelepasan kunci

Metode tidur tidak melepaskan kunci pada objek, selama waktu tunggu yang ditentukan, selama sinkronisasi

Metode tunggu melepaskan kunci pada objek, untuk memiliki kesempatan untuk mengeksekusi, selama sinkronisasi

Pernyataan

public static void sleep()

menunggu kekosongan akhir publik ()

Java memiliki beberapa metode untuk melakukan tindakan tertentu.

Metode adalah sekelompok kode, yang hanya berjalan saat dipanggil; dan mungkin atau mungkin tidak mengembalikan hasil.

Metode seperti tidur dan tunggu digunakan untuk multithreading. Keduanya menjeda dan mengirimkan utas untuk menunggu, tetapi memiliki perbedaan besar dalam fungsinya.

Tidur berbeda dengan Tunggu:

Perbedaan antara metode sleep() dan wait() adalah 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.

Tidur adalah metode statis dan merupakan bagian dari utas kelas. Setelah waktu tunggu selesai, utas akan kembali ke keadaan awal yang dapat dijalankan.

Ini memastikan pemanfaatan penuh CPU, sambil menunggu.

Sedangkan metode wait() digunakan dalam program Java untuk memerintahkan thread saat ini menunggu, hingga thread lain tidak dipanggil untuk objek tersebut.

Utas kemudian melanjutkan eksekusi, setelah mendapatkan kendali monitor.

Ini bukan metode statis tidak seperti tidur, dan merupakan bagian dari kelas objek.

Tabel perbandingan:

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 bukanlah metode statis

Teknik panggilan

Metode tidur dapat dipanggil dari luar konteks yang disinkronkan

Metode tunggu hanya dapat dipanggil dari konteks yang disinkronkan

Pelepasan kunci

Metode tidur tidak melepaskan kunci pada objek, selama waktu tunggu yang ditentukan, selama sinkronisasi

Metode tunggu melepaskan kunci pada objek, untuk memiliki kesempatan untuk mengeksekusi, selama sinkronisasi

Pernyataan

public static void sleep()

menunggu kekosongan akhir publik ()

Pengertian tidur?:

Utas tidur () adalah metode statis dalam program Java yang menangguhkan utas saat ini dan menempatkannya dalam keadaan menunggu untuk periode waktu yang ditentukan.

Setelah status tunggu dan waktu selesai, kondisi utas diubah menjadi status dapat dijalankan. Dan kemudian menunggu CPU untuk eksekusi lebih lanjut.

Tujuan dari metode ini adalah untuk membuat penundaan selama beberapa detik dalam program dan sekaligus 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.

Jenis pengembalian metode tidur dapat dikatakan batal, karena tidak mengembalikan nilai apa pun.

Utas tidur tidak kehilangan monitor atau mengunci utas yang telah diperolehnya.

Jika tidur terganggu, utas akan membuang Interrupted_Exception.

Durasi aktual thread akan tidur biasanya bergantung pada penjadwal dan pengatur waktu sistem yang merupakan bagian dari sistem operasi.

Sintaks metode tidur adalah – public static void sleep(long milliseconds)

public static void sleep (milidetik panjang, int nanodetik)

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

Pengertian Tunggu?:

Wait() adalah metode yang digunakan untuk komunikasi antar-thread.

Setiap kali utas wait() digunakan, pemanggilan atau utas saat ini akan dijeda dan ditangguhkan, hingga metode seperti notify() atau notifyAll() dipanggil dalam sistem.

metode notify() akan membangunkan utas yang ditentukan sementara notifyAll() berlaku untuk setiap utas.

Saat disinkronkan, metode tunggu melepaskan kunci ke sumber daya.

Tidak ada nilai kembalian dari metode Wait, sehingga dapat dikatakan bahwa ia mengembalikan void.

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

Metode Wait adalah bagian dari kelas objek. Metode ini hanya berlaku dan dapat dipanggil melalui blok yang disinkronkan.

Metode tunggu membebaskan layar yang ditangguhkan atau terkunci, 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:

  1. Metode Tidur menyebabkan utas tidur selama periode waktu tertentu dan tertentu biasanya untuk batas waktu yang ditentukan kecuali kedaluwarsa atau terputus sementara metode Tunggu menyebabkan utas tidur hingga metode seperti notify() atau notifyAll() dipanggil.
  2. Metode Tidur dijalankan pada utas sementara metode Tunggu dijalankan pada suatu objek.
  3. Metode Tidur digunakan untuk sinkronisasi waktu sedangkan metode Tunggu digunakan untuk sinkronisasi banyak utas.
  4. Selama utas Tunggu, beberapa utas yang disinkronkan dapat mengakses objek yang sama secara berdekatan sementara di utas Tidur, beberapa utas yang disinkronkan harus menunggu tidur dari utas saat ini selesai.
  5. Metode Tunggu membebaskan kunci atau monitor, sementara metode Tidur tidak membebaskan monitor selama tidur atau menunggu utas saat ini.

Referensi:

  1. https://pdfs.semanticscholar.org/51fd/24ae444910fd39b117bb3044a12591f038fa.pdf
  2. https://dl.acm.org/doi/pdf/10.1145/289524.289572

Saya telah berusaha keras menulis posting blog ini untuk memberikan nilai kepada Anda. Ini akan sangat membantu saya, jika Anda mempertimbangkan untuk membagikannya di media sosial atau dengan teman/keluarga Anda. BERBAGI ADALAH ♥️

Related Posts