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 menunggu digunakan untuk multithreading. Keduanya menjeda dan mengirimkan utas untuk menunggu tetapi memiliki perbedaan besar dalam fungsinya.
Pengambilan Kunci
- "Tidur" adalah keadaan istirahat di mana tubuh dan pikiran tidak aktif, sedangkan "Menunggu" adalah tetap di satu tempat atau menunda tindakan hingga peristiwa tertentu terjadi.
- "Tidur" adalah fungsi tubuh yang alami dan perlu, sedangkan "Tunggu" adalah tindakan sukarela yang dapat dipilih atau dihindari.
- “Tidur” dikaitkan dengan malam hari, sedangkan “Tunggu” dapat terjadi kapan saja sepanjang hari.
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.
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 lengkap CPU sambil menunggu.
Sedangkan metode wait() digunakan dalam Jawa program untuk memerintahkan utas saat ini untuk menunggu hingga utas lain tidak dipanggil untuk objek itu.
Utas kemudian melanjutkan eksekusi setelah mendapatkan kendali atas 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 |
Pelepas 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 | tidur kekosongan statis publik() | menunggu kekosongan akhir publik () |
Apa itu 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 lebih sedikit 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, bagaimanapun, tidur terganggu, utas akan membuang Interrupted_Exception.
Sebenarnya lamanya dimana thread akan tidur tergantung pada penjadwal dan pengatur waktu sistem yang merupakan bagian dari sistem operasi.
Sintaks dari metode sleep 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.
Apa itu Tunggu?
Wait() adalah metode yang digunakan untuk komunikasi antar-utas.
Setiap kali utas wait() digunakan, pemanggilan atau utas saat ini akan 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 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
- Metode Sleep menyebabkan thread tertidur selama jangka waktu tertentu dan tertentu, selama batas waktu tertentu kecuali kadaluarsa atau terputus, sedangkan metode Wait menyebabkan thread tertidur hingga metode seperti notify() atau notifyAll() dipanggil.
- Metode Tidur dijalankan pada utas, sedangkan metode Tunggu dijalankan pada objek.
- Metode Tidur digunakan untuk sinkronisasi waktu, sedangkan metode Tunggu digunakan untuk sinkronisasi banyak utas.
- 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.
- Metode Tunggu membebaskan kunci atau monitor, sedangkan metode Tidur tidak mengatur monitor bebas selama tidur atau menunggu utas saat ini.
- https://pdfs.semanticscholar.org/51fd/24ae444910fd39b117bb3044a12591f038fa.pdf
- https://dl.acm.org/doi/pdf/10.1145/289524.289572
Terakhir Diperbarui : 31 Juli 2023
Sandeep Bhandari meraih gelar Bachelor of Engineering in Computers dari Thapar University (2006). Beliau memiliki pengalaman selama 20 tahun di bidang teknologi. Dia memiliki minat dalam berbagai bidang teknis, termasuk sistem database, jaringan komputer, dan pemrograman. Anda dapat membaca lebih lanjut tentang dia di nya halaman bio.
Artikel ini secara efektif menjelaskan perbedaan antara metode tidur dan menunggu, memberikan perbandingan yang jelas dan ringkas. Detail sinkronisasi dan pelepasan kunci sangat membantu.
Artikel ini berhasil dengan baik dalam menggambarkan perbedaan antara metode tidur dan menunggu. Informasi tentang sinkronisasi dan pelepasan kunci disajikan dengan jelas dan presisi.
Penjelasan mendetail tentang metode tidur dan menunggu sangat bagus. Artikel ini adalah aset berharga bagi siapa pun yang ingin meningkatkan pemahaman mereka tentang konsep dasar Java ini.
Ini adalah perbandingan komprehensif metode sleep dan wait di Java. Artikel ini dengan jelas menguraikan perbedaan utama dan memberikan tabel perbandingan yang berguna untuk referensi.
Perincian mendetail tentang metode tidur dan menunggu sangat mendalam. Sangatlah berharga untuk memahami nuansa dan fungsi metode ini dalam pemrograman Java.
Menurut saya penjelasan metode tidur dan menunggu informatif dan tepat. Tabel perbandingan sangat membantu dalam merangkum fitur-fitur yang kontras dari metode-metode ini.
Artikel ini memberikan perbandingan menyeluruh antara metode sleep dan wait di Java. Saya menghargai penjelasan mendetailnya, yang memberikan wawasan berharga tentang fungsinya.
Menurut saya artikel tersebut informatif dan dibuat dengan baik. Penjelasan metode sleep dan wait bermanfaat untuk pemahaman yang lebih baik tentang penggunaan dan implikasinya di Java.
Artikel ini menawarkan perbandingan mendetail antara metode sleep dan wait, memberikan wawasan komprehensif tentang perilaku dan fungsinya dalam pemrograman Java.
Artikel ini adalah sumber berharga untuk memahami metode sleep dan wait di Java. Penjelasannya rinci, dan tabel perbandingan memberikan referensi yang mudah untuk memahami perbedaan antara metode-metode tersebut.
Saya memiliki sentimen yang sama, Vmorgan. Tabel perbandingan memberikan gambaran yang jelas tentang perbedaannya, dan deskripsi mendetail meningkatkan pemahaman tentang metode tidur dan menunggu.
Terima kasih atas artikelnya. Saya menghargai penjelasan mendetail tentang perbedaan antara metode tidur dan menunggu. Ada baiknya untuk memiliki pemahaman yang jelas tentang bagaimana fungsinya dalam program Java.
Penjelasan Anda tentang konsep sangat terstruktur dengan baik dan mudah dipahami. Saya setuju bahwa sangat penting untuk memiliki kejelasan mengenai metode mendasar ini.
Perbedaan metode sleep dan wait dijelaskan secara menyeluruh di artikel ini. Saya menemukan penjelasan tentang perilaku metode tunggu selama sinkronisasi sangat mencerahkan.
Saya setuju, Freya. Artikel ini memberikan penjelasan yang jelas dan tepat tentang perilaku metode tunggu, sehingga lebih mudah untuk memahami fungsinya di Java.
Deskripsi artikel tentang perilaku dan tipe pengembalian metode tidur dan menunggu sangat informatif. Memahami perbedaan-perbedaan ini sangat penting untuk multithreading yang efektif di Java.
Menurut saya artikel tersebut sangat informatif dan berwawasan luas. Analisis mendalam tentang metode sleep dan wait memberikan kontribusi besar dalam memahami nuansa dan implikasinya di Java.
Artikel ini memberikan analisis komprehensif tentang metode sleep dan wait di Java. Penjelasannya terorganisir dengan baik dan memberikan kontribusi besar pada pemahaman yang lebih mendalam tentang metode mendasar ini.