Java'da "çalıştırılabilir" nedir? Ben lisede bir AP programlama öğrencisiyim, görevi araştırma yapmak veya başkalarından "çalıştırılabilir" in ne olduğunu araştırmak olan (sadece OOP'a giriyoruz ve henüz konulara dokunmadık).
Java'da "çalıştırılabilir" nedir? Ben lisede bir AP programlama öğrencisiyim, görevi araştırma yapmak veya başkalarından "çalıştırılabilir" in ne olduğunu araştırmak olan (sadece OOP'a giriyoruz ve henüz konulara dokunmadık).
Yanıtlar:
Bir Runnable, temelde bir iş parçacığına konulabilen ve iş parçacığının ne yapması gerektiğini açıklayan bir sınıf türüdür (Runnable bir Arayüzdür).
Runnable Arayüz yöntemi uygulamak için sınıfın gerektirir run()
şöyle:
public class MyRunnableTask implements Runnable {
public void run() {
// do stuff here
}
}
Ve sonra şu şekilde kullanın:
Thread t = new Thread(new MyRunnableTask());
t.start();
Runnable
Arabirime sahip değilseniz, diğer iş parçacığındaki öğelerinizi yürütmekten sorumlu olan Thread sınıfı, sınıfınızda bir run()
yöntem bulma vaadinde bulunmaz , böylece hatalar alabilirsiniz. Bu yüzden arayüzü uygulamanız gerekiyor.
Her zamanki gibi bir sınıf tanımlamanıza gerek olmadığını unutmayın, tüm bunları satır içi yapabilirsiniz:
Thread t = new Thread(new Runnable() {
public void run() {
// stuff here
}
});
t.start();
Bu yukarıdakine benzer, ancak başka bir adlandırılmış sınıf oluşturmazsınız.
run
yöntem bitene kadar çalıştırılır , ardından iş parçacığı kapatılır. Bir iş parçacığının tekrar tekrar çalışmasını istiyorsanız, run
yöntemin içine bir döngü yerleştirin .
new Thread(() -> System.out.println("hello from other thread")).start();
Runnable
şu şekilde tanımlanan bir arayüzdür:
interface Runnable {
public void run();
}
Onu kullanan bir sınıf oluşturmak için sınıfı şu şekilde tanımlamanız yeterlidir: (public) class MyRunnable implements Runnable {
Yeni bir Konu bile yapılmadan kullanılabilir. Temel olarak çağrılabilen tek bir yöntemle, çalıştırma ile temel arayüzünüzdür.
Parametresi olarak runnable ile yeni bir Thread yaparsanız, run metodunu yeni bir Thread içerisinde çağıracaktır.
Ayrıca Threads'ın uygulandığı Runnable
ve yeni Thread yapıldığında (yeni thread'de) çağrıldığına dikkat edilmelidir . Varsayılan uygulama, yapıcıda verdiğiniz Runnable'ı çağırır, bu yüzden new Thread(someRunnable)
Thread run
yöntemini geçersiz kılmadan yapabilirsiniz .
Thread
parçacığı havuzunu uzatırsanız ve iş parçacığı havuzunu uygulamazsanız, her zaman yeni iş parçacığı oluşturmanın önemli maliyetini üstlenirsiniz . Aksine, sadece uygulama, 3. taraf iş parçacığı havuzu Runnable
gibi şeyleri kolayca kullanabileceğiniz anlamına gelir ThreadPoolExecutorService
.