Junior — Middle
Na koje načine se može implementirati kreiranje tokova podataka u Javi i u čemu se razlikuju?
sobes.tech АИ
Одговор од АИ
У Јави, креирање токова података (streams) може се реализовати на неколико начина:
-
Наслеђивање од класе Thread
- Креирате класу која проширује
Threadи преписује методrun(). - Покрећете ток позивом
start().
- Креирате класу која проширује
-
Реализација интерфејса Runnable
- Креирате класу која имплементира
Runnableса методомrun(). - Објекат преносите у конструктор
Threadи покрећете га.
- Креирате класу која имплементира
-
Користећи ExecutorService
- Омогућава управљање пулом нитева.
- Погодно за скалабилне апликације.
-
Користећи Callable и Future
- Омогућава добијање резултата из нити.
Разлике:
- Наслеђивање од Thread ограничава наслеђивање, јер Јава не подржава мултинаследност.
- Runnable је флексибилнији, омогућава коришћење композиције.
- ExecutorService поједностављује управљање нитевима и њиховим животним циклусом.
Пример са Runnable:
class MyRunnable implements Runnable {
public void run() {
System.out.println("Потез је покренут");
}
}
public class Main {
public static void main(String[] args) {
Thread thread = new Thread(new MyRunnable());
thread.start();
}
}