Neden Runnable
arabirimini kullanarak iş parçacığı oluştururken runnable örneğini geçirmemiz gerekiyor?Konuları başlatmak için neden bir Runnable'a ihtiyacımız var?
cevap
Çalıştırılabilir nesneyi iş parçacığının yapıcısına iletmemiz gerekçesinin, iş parçacığının yürütmesini istediğimiz run()
yöntemine ulaşması için bir yolu olması gerektiğidir.
Thread sınıfının run()
yöntemi geçersiz kılmasını artık olduğundan bir örneğin
public class CustomApplet extends Applet {
public void init() {
Runnable ot = new OurClass();
Thread th = new Thread(ot);
th.start();
}
}
al, Konu sınıfının varsayılan run()
yöntem akdedilmiş olup; Bu
public void run() {
if (ot!= null) {
ot.run();
}
}
Dolayısıyla, ot
biz parçacığının kurucusuna aktarılan çalıştırılabilir nesnedir gibi bu varsayılan run()
yöntem görünüyor. Böylece iş parçacığı, runnable nesnesinin hemen run()
yöntemini çağıran Thread sınıfının run()
yöntemiyle yürütülmeye başlar.
Yeni iş parçacığının ne yapmasını istiyorsunuz? Muhtemelen bazı kodları yürütmek istersiniz. Ama hangi kod çalıştırmalı? Kodu bir konuya koyamazsınız. Ve Java fonksiyon işaretçilerine sahip değil. Bu sorunu çözmek için küçük bir hile, bir işlevi uygulayan bir nesneyi kullanmaktır. Bu işlev run
. Yani, nesnenin bir run
yöntemine sahip olması gerekir. Runnable arayüzünün yaptığı budur, bir çalışma yöntemi olduğundan emin olun. Böylece, bir Runnable nesnesi verirsek, iş parçacığı ne yapacağını bilir!
+1 ...................... :) –
İş parçacığı sınıfı çalıştırılabilir arabirimi otomatik olarak uygular mı? –
Evet. o .. –