2016-03-19 3 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(); 
      } 
     } 

    }); 

Как вы видите, я хочу сделать многопоточность на Java с RxJavaКак использовать Threading на RxJava?

Я изучил много ресурсов на Google, но большинство из них для Android

Кто-нибудь может сказать, что это самый простой способ его реализовать?

Я думаю, что мой код немного: <

ответ

3

Ну, это немного неясно, что вы просите, но это имеет смысл, по крайней мере, беглое чтение над Наблюдаемой классой, так как он имеет много методов, которые облегчат вашу жизнь. Например, код примерно переводится:

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)); 

Однако, в первую очередь необходимо иметь четкое представление о том, что вы хотите сделать - вы можете поставить его на словах?

+0

Я хочу начать много задач одновременно, но они могут занять время. Я просто хочу знать, как реализовать многопоточность с RxJava – DumDumGenius

+0

Я хочу показать 1, 2, 3 в то же время ~ – DumDumGenius

+0

Затем просто пропустите вызов 'zipWith'. –

Смежные вопросы