2016-03-19 22 views
1
 Observable.create(new Observable.OnSubscribe<Integer>() { 

     public void call(final Subscriber<? super Integer> obs) { 
      new Thread(){ 
       public void run(){ 
        obs.onNext(1); 
       } 
      }.start(); 
      new Thread(){ 
       public void run(){ 
        obs.onNext(2); 
       } 
      }.start(); 
      new Thread(){ 
       public void run(){ 
        obs.onNext(3); 
       } 
      }.start(); 
      obs.onCompleted(); 
     } 
    }).subscribe(new Subscriber<Integer>(){ 

     public void onCompleted() { 
      System.out.println("Complete"); 

     } 

     public void onError(Throwable arg0) { 
      // TODO Auto-generated method stub 

     } 

     public void onNext(Integer arg0) { 
      System.out.println(arg0); 
      try { 
       Thread.sleep(1000); 
      } catch (InterruptedException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 

    }); 

, ben RxJava'da Nasıl Kullanılır? Gördüğünüz gibi

Google'da birçok kaynak inceledim RxJava

ile Java üzerinde çoklu iş parçacığı yapmak istiyorum, ancak bunların çoğu

herkes ne olduğunu söyleyebilir Android

içindir Bunu uygulamak için en kolay yolu?

benim kod biraz olduğunu düşünüyorum: <

cevap

3

Eh, ne istediğini biraz belirsiz, ama en azından gözlemlenebilir sınıfı üzerinde üstünkörü okumak için bir yeri vardır gibi, değerli olduğunu hayatınızı kolaylaştıracak yöntemlerin. Örneğin, kod kabaca şöyle açıklanabilir:

Observable 
.just(1,2,3) 
.subscribeOn(Schedulers.io()) 
.zipWith(Observable.interval(1000,1000,TimeUnit.milliseconds), 
    (item, pos) -> item) 
.doOnCompleted(() -> System.out.println("Complete"); 
.subscribe(item -> System.out.println(item)); 

Ancak, öncelikle yapmak istiyorsun ne olduğu hakkında net olmak gerekir - Eğer kelimelere koyabilirsiniz?

+0

Aynı anda birçok görevi başlatmak istiyorum, ancak bitirmek için farklı zaman alabilir. Sadece RxJava – DumDumGenius

+0

ile çok iş parçacığı uygulamak nasıl bilmek istiyorum Aynı anda 1, 2, 3 göstermek istiyorum ~ – DumDumGenius

+0

Sonra sadece zipWith' aramayı atlamak. –

İlgili konular