RxJava - कम्प्यूटिंग शेड्यूलर

Schedulers.computation () विधि बनाता है और कम्प्यूटेशनल काम के लिए एक समयबद्धक देता है। शेड्यूल किए जाने वाले थ्रेड्स की गणना सिस्टम में मौजूद सीपीयू पर निर्भर करती है। प्रति CPU एक थ्रेड की अनुमति है। इवेंट-लूप या कॉलबैक ऑपरेशन के लिए सर्वश्रेष्ठ।

Schedulers.computation () उदाहरण

C: \> RxJava, अपनी पसंद के किसी भी संपादक का उपयोग करके निम्नलिखित जावा प्रोग्राम बनाएं।

ObservableTester.java

import java.util.Random;

import io.reactivex.Observable;
import io.reactivex.schedulers.Schedulers;

public class ObservableTester  {
   public static void main(String[] args) throws InterruptedException {
      Observable.just("A", "AB", "ABC")
         .flatMap(v -> getLengthWithDelay(v)
         .doOnNext(s -> System.out.println("Processing Thread " 
            + Thread.currentThread().getName()))
         .subscribeOn(Schedulers.computation()))
         .subscribe(length -> System.out.println("Receiver Thread " 
            + Thread.currentThread().getName() 
            + ", Item length " + length));

         Thread.sleep(10000);
   }
   protected static Observable<Integer> getLengthWithDelay(String v) {
      Random random = new Random();
      try {
         Thread.sleep(random.nextInt(3) * 1000);
         return Observable.just(v.length());
      } catch (InterruptedException e) {
         e.printStackTrace();
      }
      return null;
   }
}

परिणाम सत्यापित करें

का उपयोग कर वर्ग संकलित करें javac संकलक निम्नानुसार है -

C:\RxJava>javac ObservableTester.java

अब वेधशाला चलाने के लिए निम्नानुसार है -

C:\RxJava>java ObservableTester

यह निम्नलिखित उत्पादन का उत्पादन करना चाहिए -

Processing Thread RxComputationThreadPool-1
Receiver Thread RxComputationThreadPool-1, Item length 1
Processing Thread RxComputationThreadPool-2
Receiver Thread RxComputationThreadPool-2, Item length 2
Processing Thread RxComputationThreadPool-3
Receiver Thread RxComputationThreadPool-3, Item length 3