Java тилинин кайсы каражаттары аркылуу агымдарды түзүүгө болот?
sobes.tech AI
AIден жооп
سىز Java دا بىر تەرەققىياتنى بىر قانچە ئۇسۇل بىلەن قۇرالايسىز:
-
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(); -
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();بۇ ئۇسۇل ياخشىراق، چۈنكى كلاس باشقا كلاسلىرىدىنمۇ ۋارىسى بولالايدۇ.
-
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(); }