Sobes.tech
Junior — Middle

Чӣ гуна роҳҳо метавонанд эҷоди ҷараёнҳои маълумот дар Java амалӣ шаванд ва фарқиятҳои онҳо дар чист?

sobes.tech AI

Ҷавоб аз AI

Дар Java, эҷоди ҷараёнҳои маълумот (streams) метавонад бо чанд роҳ иҷро карда шавад:

  1. Мурасият аз синфи Thread

    • Синфе эҷод кунед, ки Thread-ро васеъ мекунад ва усули run()-ро иваз мекунад.
    • Ҷараёнро бо даъвати start() оғоз кунед.
  2. Иҷрои интерфейси Runnable

    • Синфе эҷод кунед, ки Runnable-ро иҷро мекунад ва методи run()-ро дорад.
    • Объекти онро ба конструктори Thread дода ва оғоз кунед.
  3. Истифодаи ExecutorService

    • Имкон медиҳад, ки пулҳои ҷараёнҳоро идора кунед.
    • Барои барномаҳои масштабшаванда мувофиқ аст.
  4. Истифодаи 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();
    }
}