Java tilida qanday vositalar yordamida oqimlar yaratish mumkin?
sobes.tech AI
AIdan javob
Java'da ipni yaratishning bir necha usullari mavjud:
-
Threadsinfidan meros olish: Yangi sinf yaratiladi vajava.lang.Threaddan meros oladi,run()metodi qayta yoziladi.// Thread dan meros oluvchi sinf yaratamiz class MyThread extends Thread { // run() metodini qayta yozamiz @Override public void run() { // Yangi ipda bajariladigan kod System.out.println("Ip " + Thread.currentThread().getName() + " ishga tushirildi."); } }Ipni ishga tushirish:
// Ip nusxasini yaratamiz MyThread thread = new MyThread(); // Ipni ishga tushiramiz thread.start(); -
Runnableinterfeysini amalga oshirish: Sinf yaratiladi vajava.lang.Runnableinterfeysini amalga oshiradi,run()metodini taqdim etadi. So'ngra,Runnableobyekti bilanThreadobyekti yaratiladi.// Runnable ni amalga oshiradigan sinf yaratamiz class MyRunnable implements Runnable { // run() metodini amalga oshiramiz @Override public void run() { // Yangi ipda bajariladigan kod System.out.println("Ip " + Thread.currentThread().getName() + " ishga tushirildi."); } }Ipni ishga tushirish:
// Runnable ni yaratamiz MyRunnable runnable = new MyRunnable(); // Runnable bilan Thread obyekti yaratamiz Thread thread = new Thread(runnable); // Ipni ishga tushiramiz thread.start();Bu usul afzalroq, chunki sinf boshqa sinflardan meros olishi mumkin.
-
Callableinterfeysini amalga oshirish vaExecutorServicedan foydalanish:java.util.concurrent.Callableinterfeysi,Runnablega o'xshash, boshqa ipda bajariladigan vazifani ifodalaydi, lekincall()metodi natija qaytarishi va istisnolarni tashlashi mumkin.Callableni bajarish uchun odatdajava.util.concurrent.ExecutorServicedan ip havuzlari ishlatiladi.import java.util.concurrent.*; // Callable ni amalga oshiradigan sinf yaratamiz class MyCallable implements Callable<String> { // call() metodini amalga oshiramiz, u natija qaytarishi mumkin @Override public String call() throws Exception { // Yangi ipda bajariladigan kod System.out.println("Ip " + Thread.currentThread().getName() + " ishga tushirildi."); // Natijani qaytarish return "Vazifa muvaffaqiyatli bajarildi!"; } }Ishga tushirish va natijani olish:
import java.util.concurrent.*; // Ip havuzini yaratamiz ExecutorService executor = Executors.newFixedThreadPool(1); // Callable ni yaratamiz MyCallable callable = new MyCallable(); // Vazifani bajarishga yuboramiz va natija uchun Future olamiz Future<String> future = executor.submit(callable); try { // Vazifa natijasini olamiz String result = future.get(); System.out.println("Natija: " + result); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } finally { // ExecutorService ni yopamiz executor.shutdown(); }