Sobes.tech
Junior

Java тилинин кайсы каражаттары аркылуу агымдарды түзүүгө болот?

sobes.tech AI

AIден жооп

سىز Java دا بىر تەرەققىياتنى بىر قانچە ئۇسۇل بىلەن قۇرالايسىز:

  1. Thread كلاسسىدىن ۋارىسى بولۇش: يېڭى بىر كلاس قۇرۇپ، ئۇ java.lang.Threadدىن ۋارىسى بولىدۇ، ۋە run() مېتودىنى قايتا يېزىدۇ.

    // `Thread`دىن ۋارىسى بولغان كلاس قۇرۇش
    class MyThread extends Thread {
        // `run()` مېتودىنى قايتا يېزىش
        @Override
        public void run() {
            // يېڭى تەرەققىياتتا ئىجرا بولىدىغان كود
            System.out.println("تەرەققىيات " + Thread.currentThread().getName() + " باشلاندى.");
        }
    }
    

    تەرەققىياتنى باشلاش:

    // تەرەققىياتنىڭ نۇسخىسىنى قۇرۇش
    MyThread thread = new MyThread();
    // تەرەققىياتنى باشلاش
    thread.start();
    
  2. Runnable ئىنتېرپېيسىنى ئىجرا قىلىش: يېڭى بىر كلاس قۇرۇپ، ئۇ java.lang.Runnable ئىنتېرپېيسىنى ئىجرا قىلىدۇ، ۋە run() مېتودىنى تەمىنلەيدۇ. ئاندىن، Thread نىشىنى قۇرۇپ، ئۇغا Runnable نى بېرىدۇ.

    // `Runnable` ئىنتېرپېيسىنى ئىجرا قىلىدىغان كلاس
    class MyRunnable implements Runnable {
        // `run()` مېتودىنى ئىجرا قىلىش
        @Override
        public void run() {
            // يېڭى تەرەققىياتتا ئىجرا بولىدىغان كود
            System.out.println("تەرەققىيات " + Thread.currentThread().getName() + " باشلاندى.");
        }
    }
    

    تەرەققىياتنى باشلاش:

    // `Runnable` نۇسخىسىنى قۇرۇش
    MyRunnable runnable = new MyRunnable();
    // `Runnable` نى قوبۇل قىلىدىغان `Thread` نى قۇرۇش
    Thread thread = new Thread(runnable);
    // تەرەققىياتنى باشلاش
    thread.start();
    

    بۇ ئۇسۇل ياخشىراق، چۈنكى كلاس باشقا كلاسلىرىدىنمۇ ۋارىسى بولالايدۇ.

  3. Callable ئىنتېرپېيسىنى ئىجرا قىلىش ۋە ExecutorService نى ئىشلىتىش: java.util.concurrent.Callable ئىنتېرپېيسى، Runnable دىن پەرقلىق، بىر ئىشنى باشقۇرالايدۇ، ۋە call() مېتودى نەتىجە قايتۇرالايدۇ ۋە خاتالىق چىقىرىدۇ. Callable نى ئىجرا قىلىش ئۈچۈن، ئادەتتە java.util.concurrent.ExecutorService نىڭ پۇللىرى ئىشلىتىلىدۇ.

    import java.util.concurrent.*;
    
    // `Callable` نى ئىجرا قىلىدىغان كلاس
    class MyCallable implements Callable<String> {
        // `call()` مېتودىنى ئىجرا قىلىش، نەتىجە قايتۇرالايدۇ
        @Override
        public String call() throws Exception {
            // يېڭى تەرەققىياتتا ئىجرا بولىدىغان كود
            System.out.println("تەرەققىيات " + Thread.currentThread().getName() + " باشلاندى.");
            // نەتىجە قايتۇرۇش
            return "ۋەزىپە مۇۋەپپەقىيەتلىك ئاخىرلاندى!";
        }
    }
    

    باشلاش ۋە نەتىجە ئېلىش:

    import java.util.concurrent.*;
    
    // تەرەققىيات پۇل قۇرۇش
    ExecutorService executor = Executors.newFixedThreadPool(1);
    // `Callable` نى قۇرۇش
    MyCallable callable = new MyCallable();
    // ۋەزىپىنى ئىجرا قىلىش ۋە `Future` نى ئالماق
    Future<String> future = executor.submit(callable);
    
    try {
        // نەتىجە ئېلىش
        String result = future.get();
        System.out.println("نەتىجە: " + result);
    } catch (InterruptedException | ExecutionException e) {
        e.printStackTrace();
    } finally {
        // `ExecutorService` نى تاقاش
        executor.shutdown();
    }