Logo tr.removalsclassifieds.com

Uyku ve Bekleme Arasındaki Fark (Masalı)

İçindekiler:

Anonim

Java'nın belirli eylemleri gerçekleştirmek için birkaç yöntemi vardır. Yöntem, yalnızca çağrıldığında çalışan bir kod grubudur; ve bir sonuç döndürebilir veya döndürmeyebilir.

Çoklu kullanım için uyku ve bekleme gibi yöntemler kullanılır. Her ikisi de duraklar ve iş parçacığını beklemeye gönderir, ancak işlevlerinde büyük farklılıklar vardır.

Uyumak vs Beklemek

sleep() ve wait() yöntemi arasındaki fark, programda mevcut iş parçacığının yürütülmesini belirli bir süre için duraklatmak için uyku() yönteminin kullanılması, programda ise duraklatmak veya askıya almak için wait() yönteminin kullanılmasıdır. belirli yöntemler çağrılana kadar geçerli iş parçacığı.

Uyku yönteminin kullanımı sırasında, mevcut iş parçacığı monitörün sahipliğini kaybetmez. Uyku statik bir yöntemdir ve sınıf iş parçacığının bir parçasıdır. Bekleme süresi sona erdikten sonra, iş parçacığı orijinal çalıştırılabilir duruma geri döner. Beklerken CPU'nun tam olarak kullanılmasını sağlar.

Java programında, mevcut iş parçacığının o nesne için başka bir iş parçacığı çağrılıncaya kadar beklemesini emretmek için wait() yöntemi kullanılır. İş parçacığı daha sonra monitörün kontrolünü ele geçirdiğinde yürütme ile devam eder. Uykudan farklı olarak statik bir yöntem değildir ve nesne sınıfının bir parçasıdır.

Uyku ve Bekleme Karşılaştırma Tablosu

Karşılaştırma parametreleri Uyku Beklemek
Sınıf uyku yöntemi, iş parçacığı sınıfının bir parçasıdır wait yöntemi, nesne sınıfının bir parçasıdır
Yöntem türü Uyku statik bir yöntemdir Bekle, statik bir yöntem değil
arama tekniği Uyku yöntemi, senkronize edilmiş bağlamın dışından çağrılabilir. Bekleme yöntemi yalnızca senkronize edilmiş bağlamdan çağrılabilir.
Kilit açma Uyku yöntemi, senkronizasyon sırasında belirtilen zaman aşımı için nesne üzerindeki kilidi serbest bırakmıyor Bekleme yöntemi, senkronizasyon sırasında yürütme şansına sahip olmak için nesne üzerindeki kilidi serbest bırakır.
beyanname genel statik boşluk uykusu () genel son boşluk bekleme()

Uyku nedir?

İş parçacığı uyku(), Java programında mevcut iş parçacığını askıya alan ve öngörülen bir süre boyunca onu bekleme durumuna sokan statik bir yöntemdir. Bekleme durumu ve süresi sona erdiğinde, iş parçacığı durumu çalıştırılabilir duruma değiştirilir. Ve daha sonra yürütme için CPU'yu bekler.

Bu yöntemin amacı, programda birkaç saniye gecikme yaratmak ve eş zamanlı olarak CPU'nun maksimum kullanımını sağlamaktır. Sistem meşgul veya aşırı yüklenmişse, bekleme veya duraklama süresi daha fazladır ve aksi takdirde gerçek zamana eşit veya daha az olur.

Uyku yönteminin dönüş türü, herhangi bir değer döndürmediği için geçersiz denilebilir. Uyku ipliği, monitörü kaybetmez veya halihazırda almış olduğu ipliği kilitlemez. Herhangi bir durumda uyku bozulursa, iş parçacığı Interrupted_Exception'ı atar. İş parçacığının uyuyacağı gerçek süre genellikle işletim sisteminin bir parçası olan zamanlayıcılara ve sistem zamanlayıcılarına bağlıdır.

Uyku yönteminin sözdizimi – genel statik boşluk uykusudur (uzun milisaniye)

genel statik boşluk uykusu(uzun milisaniye, int nanosaniye)

Burada milisaniye ve nanosaniye, iş parçacığının uyuyacağı zamandır.

Beklemek nedir?

Wait(), iş parçacıkları arası iletişim için kullanılan bir yöntemdir. wait() iş parçacığı her kullanıldığında, sistemde notify() veya notifyAll() gibi yöntemler çağrılana kadar çağrılan veya geçerli iş parçacığı duraklatılır ve askıya alınır.

notify() yöntemi belirtilen iş parçacığını uyandırırken, notifyAll() her iş parçacığı için uygulanabilir. Senkronize edildiğinde, bekleme yöntemi kaynaklara olan kilitten vazgeçer. Wait yönteminin bir dönüş değeri yoktur, dolayısıyla void döndürdüğü söylenebilir.

Wait yönteminin iki istisnası Interrupted_Exception (geçerli iş parçacığı uyku sırasında kesildiğinde) ve IllegalMonitorStateException (geçerli iş parçacığı monitördeki nesnenin sahibi olmadığında).

Wait yöntemi, nesne sınıfının bir parçasıdır. Yöntem yalnızca uygulanabilir ve senkronize edilmiş bir blok üzerinden çağrılabilir. Bekleme yöntemi, senkronizasyon sırasında askıya alınmış veya kilitli ekranı serbest bırakır. Ve Wait yöntemi, yalnızca senkronize edilmiş birden çok iş parçacığının aynı nesneye tek tek erişmesine izin verir.

Wait yönteminin sözdizimi – public final void wait() şeklindedir.

Uyku ve Bekleme Arasındaki Temel Farklar

Çözüm

Uyku ve Bekleme yöntemi, Java'nın yerel yöntemleridir. Ve her ikisi de mevcut devam eden iş parçacığının çalıştırılamaz bir duruma geçmesini sağlamak için yaygın olarak kullanılır. Programda çoklu kullanım için her iki yöntem de kullanılmaktadır.

Uyku yöntemi, genellikle nanosaniyeden milisaniyeye kadar süren belirli bir süre boyunca ekranı kilitleme özel seçeneği sunar. Ancak bekleme yöntemi, başka bir yöntem çağrılana kadar ekranı kilitler veya askıya alır, bu nedenle süre, uyku yönteminin kullanımı sırasında olduğu gibi belirli kalmaz.

Sınıf, yöntem, senkronizasyon ve kilit tutma ve bırakma süresi ve diğer birçok parametre gibi belirli işlevler açısından birbirlerinden ayrılırlar. Çoğu zaman programcılar, iş parçacığının uyuması için hangi yöntemin ideal olabileceği konusunda kafa karıştırır. Yöntemlerin kullanımı, mevcut iş parçacığının ihtiyacı, aciliyeti ve süresi gibi gereksinimlere bağlıdır.

Uyku ve Bekleme Arasındaki Fark (Masalı)