2010-07-24 13 views
8

Olası Çoğalt:
Java: Thread.currentThread().sleep(x) vs. Thread.sleep(x)Thread.currentThread() uyku (zaman) v/s Thread.sleep (zaman).;

neyin arasındaki fark ...

Thread.currentThread().sleep(time) 

ve

Thread.sleep(time); 

Bir başka şey, iplik sınıfını kullanmadan programda geciktirebileceğim başka bir yöntem var ...

+3

http://stackoverflow.com/questions/2077216/java-thread-currentthread-sleepx-vs-thread-sleepx adresine yakın olan bu soru, utanmaz bir plazistin cevabını kabul edilen yanıtı kesmesi ve yapıştırmasıdır. bu soruya –

+0

@Stephen C belki gereksiz soruları sormak için utanmaz bir başkasıdır? –

+0

@Dave - @Jazz 2 sorulan sorular sadece gelmiştir, diğeri gereksiz değildi. Ayrıca, herkes plaganizmin hile yaptığını biliyor. Çocuklar bunu ilkokulda öğretir ve üniversiteye giden herkes bunun büyük bir NoNo olduğunu öğrenememiş olabilir. –

cevap

-3

1 - bunlar aynıdır.

+2

-1, çünkü 2 numaralı noktanız yanlış. Bir alternatif için cevabımı görün. –

7

Thread.sleep() statik bir yöntemdir); -

2 Thread.sleep kendi yolunu uygulamadığı takdirde, Java geciktirmek için tek yoldur. Thread.sleep() arama ve Thread.currentThread().sleep() arayarak arasında hiçbir fark yoktur. Eğer tutulma kullanırsanız olmayan bir statik şekilde statik yöntem uyku() erişen Ancak, ikinci formun size bir uyarı mesajı vermelidir.

TimeUnit.sleep(), Thread.sleep() için harika bir alternatiftir. çoğu durumda ben bütün saniye uyumak istiyorum çünkü ben şahsen bunu tercih ve aksine ben TimeUnit.SECONDS.sleep(5) ile bunu kolayca ve açıkça görebilirsiniz Thread.sleep(5*1000) veya Thread.sleep(5000)

Düzenleme: Orada başka bir alternatif henüz, ama en değil tüm istenen bir alternatif. Object.wait() çağrısı yürütmeyi, Thread.sleep() öğesine benzer şekilde durdurur. Bununla birlikte, bunu yapmak tavsiye edilmez çünkü ilk önce synchronize(Object)'u kullanmanız gerekir ve bu yöntem beklemeli/senkronize iplik senkronizasyonu için tasarlanmıştır. Ayrıca, iş parçacığının Object.wait() öğesinden gelen sahte uyandırmalar olarak belirtilen tam zamanı beklemesi JVM uygulamaları için kabul edilebilir bir garanti yoktur.

+0

TimeUnit, Java API'dan Thread.sleep() 'u çalıştıracaktır: Bu üniteyi kullanarak bir Thread.sleep gerçekleştirin. – mhshams

+0

@Mohammad shamsi, evet ama Object.wait() kullanarak Konu sınıfını kullanarak gerektirmez. Kesin bir şekilde olsa da, TimeUnit, mevcut uygulama sadece Thread.sleep() 'e delege olsa bile bir alternatiftir. –

İlgili konular