Junior — Middle
Чӣ гуна роҳҳо метавонанд эҷоди ҷараёнҳои маълумот дар Java амалӣ шаванд ва фарқиятҳои онҳо дар чист?
sobes.tech AI
Ҷавоб аз AI
Дар Java, эҷоди ҷараёнҳои маълумот (streams) метавонад бо чанд роҳ иҷро карда шавад:
-
Мурасият аз синфи Thread
- Синфе эҷод кунед, ки
Thread-ро васеъ мекунад ва усулиrun()-ро иваз мекунад. - Ҷараёнро бо даъвати
start()оғоз кунед.
- Синфе эҷод кунед, ки
-
Иҷрои интерфейси Runnable
- Синфе эҷод кунед, ки
Runnable-ро иҷро мекунад ва методиrun()-ро дорад. - Объекти онро ба конструктори
Threadдода ва оғоз кунед.
- Синфе эҷод кунед, ки
-
Истифодаи ExecutorService
- Имкон медиҳад, ки пулҳои ҷараёнҳоро идора кунед.
- Барои барномаҳои масштабшаванда мувофиқ аст.
-
Истифодаи Callable ва Future
- Имкон медиҳад натиҷаро аз ҷараён гиред.
Фарқиятҳо:
- Мурасият аз
Threadмаҳдуд аст, зеро Java дастгирӣ намекунад бисёрнаслӣ. - 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();
}
}