Uyku ve Bekleme Arasındaki Fark

Uyku ve Bekleme

Bilgisayarlar gibi makineler, programlar oluşturmak, onları kontrol etmek ve talimatları iletmelerine ve algoritmaları ifade etmelerine izin vermek için yapay dili kullanır. Bu dile programlama dili denir.

Bilgisayarların ortaya çıkmasından önce, tezgahlar ve piyanolarda programlama dilleri zaten kullanılmıştı. Bilgisayar kullanımı daha yaygın hale geldikçe, şu anda kullanılan çeşitli programlama dilleri vardı.

BASIC, C, C ++, Fortran, Pascal ve Java gibi üst düzey diller de dahil olmak üzere birçok bilgisayar dili vardır. Her sanal makine ve CPU, her biri kendi zayıf ve güçlü yönlerine sahip kendi bilgisayar diline sahiptir ve her sanal makine başlatıldığında bir iş parçacığı çalıştırır. Bu iş parçacığı programdaki uygulama kodunu yürütür. Bir programın daha hızlı çalışmasını sağlayabilir ve özellikle birden çok iş parçacığı kullanıldığında performanslarına ve kullanışlılıklarına yardımcı olabilir.

Java sanal makinesi gibi sanal makineler, zaman işleminin adil bir şekilde bölünmesini sağlayan, daha düşük öncelikli iş parçacıklarına göre daha yüksek öncelikli iş parçacığı içeren çok iş parçacıklı bir kavramı destekler.

Paylaşılan bir alanda denetimlerin veya iş parçacıklarının akışını oluşturabilen, denetleyebilen ve sonlandırabilen iş parçacığı yönetim yöntemleri kullanır. Bu evre yönetimi yöntemlerinden ikisi bekleme ve uyku yöntemleridir.

Bu iki yöntem ayrıdır. Uyku yöntemi, iş parçacığının yürütülmesini denetler ve bir sonraki eylemi geciktirirken wait yöntemi, diğer iş parçacıklarının çalışmasına izin vermek için iş parçacığının yürütülmesini denetlemez.

Wait yöntemi Object sınıfında tanımlanır ve geçerli iş parçacığını çalıştırılamaz durumuna gönderir. Bir nesnenin yürütme kodunun geçici olarak duraklamasına izin vermek ve daha sonra devam ettirmek için notify ve notifyAll yöntemleriyle birlikte kullanılır.

Bir kilit nesnesini çağırarak ve geçerli iş parçacığının onunla senkronize olmasına izin vererek çalışır. Bekle kilidi serbest bırakır ve iş parçacığını bekleme listesine alır ve diğer iş parçacıklarının onunla senkronize olmasına izin vererek orijinal iş parçacığının uyanmasına neden olur. Programcı, yürütmenin yeniden başladığı zamanı belirler.

Uyku yöntemi ise statik bir yöntem olarak tanımlanmaktadır. Nesnelerin değil, iş parçacıklarının yürütülmesini geciktirir ve yürütülmekte olan iş parçacığını askıya alır. Mevcut konuları bir süre çalıştırılamaz duruma gönderir. Geçerli iş parçacığının eşitleme kilitlerini koruduğu için çok iş parçacıklı uygulamaların davranışını etkileyebilir. İş parçacığı eşitlenmiş bir blokta olduğunda, başka hiçbir iş parçacığı bloğa giremez.

Özet:

1. “Uyku”, statik yöntem olarak tanımlanan bir iş parçacığı yönetim yöntemidir; “bekleme”, Object sınıfında tanımlanan bir iş parçacığı yönetim yöntemidir.
2.Sleep, iş parçacıklarını yürüten bir yöntemdir, bekleme ise nesneleri yürüten bir yöntemdir.
3. uyku geçerli iş parçasının senkronizasyon kilitlerini tutar ve bekleme yapmazken uygulamaların davranışını etkiler.
4.Uyku iş parçacığının yürütülmesini kontrol eder ve diğer iş parçacıklarının çalışmasına izin vermek için beklemenin iş parçacığının yürütülmesini denetlemezken, senkronize edilmiş bir bloktaki diğer iş parçacıklarına izin vermez.