Java dilində hansı vasitələrlə axınlar yaradıla bilər?
sobes.tech Süni İntellekt
AI-dan cavab
Java-da ip yaratmaq üçün bir neçə üsul mövcuddur:
-
Threadsinfindən irs almaq: Yeni sinif yaradılır vəjava.lang.Threadsinfindən irs alınır,run()metodu yenidən yazılır.// Thread-dən irs alan sinif yaradılır class MyThread extends Thread { // run() metodunu yenidən yazırıq @Override public void run() { // Yeni ipdə icra olunan kod System.out.println("Ip " + Thread.currentThread().getName() + " işə salındı."); } }İpi işə salmaq:
// İp nümunəsi yaradılır MyThread thread = new MyThread(); // İpi işə salırıq thread.start(); -
Runnableinterfeysinin tətbiqi: Sinif yaradılır vəjava.lang.Runnableinterfeysini tətbiq edir,run()metodu təmin edilir. Sonra,RunnableobyektinəThreadobyekti yaradılır.// Runnable tətbiq edən sinif yaradılır class MyRunnable implements Runnable { // run() metodunu tətbiq edirik @Override public void run() { // Yeni ipdə icra olunan kod System.out.println("Ip " + Thread.currentThread().getName() + " işə salındı."); } }İpi işə salmaq:
// Runnable nümunəsi yaradılır MyRunnable runnable = new MyRunnable(); // Runnable ilə Thread obyekti yaradılır Thread thread = new Thread(runnable); // İpi işə salırıq thread.start();Bu üsul üstünlük təşkil edir, çünki sinif başqa sinflərdən də irs ala bilər.
-
Callableinterfeysinin tətbiqi vəExecutorServiceistifadə edilməsi:java.util.concurrent.Callableinterfeysi,Runnable-a bənzər, başqa bir ipdə icra oluna bilən və nəticə qaytara bilən və istisnalar ata bilən vəzifəni təmsil edir.Callable-ı icra etmək üçün adətənjava.util.concurrent.ExecutorService-dən ip hovuzları istifadə olunur.import java.util.concurrent.*; // Callable tətbiq edən sinif yaradılır class MyCallable implements Callable<String> { // call() metodunu tətbiq edirik, nəticə qaytara bilər @Override public String call() throws Exception { // Yeni ipdə icra olunan kod System.out.println("Ip " + Thread.currentThread().getName() + " işə salındı."); // Nəticəni qaytarırıq return "Tapşırıq uğurla tamamlandı!"; } }İşə salma və nəticənin alınması:
import java.util.concurrent.*; // İp hovuzunu yaradırıq ExecutorService executor = Executors.newFixedThreadPool(1); // Callable nümunəsini yaradırıq MyCallable callable = new MyCallable(); // Tapşırığı icra üçün göndəririk və Future alırıq Future<String> future = executor.submit(callable); try { // Nəticəni alırıq String result = future.get(); System.out.println("Nəticə: " + result); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } finally { // ExecutorService-i bağlayırıq executor.shutdown(); }