Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 具体 ;调度程序&x2019;任务的线程每个任务都应该有它’;s自己的 ;调度程序&x2019;丝线_Android_Multithreading_Rx Java_Rx Java2 - Fatal编程技术网

Android 具体 ;调度程序&x2019;任务的线程每个任务都应该有它’;s自己的 ;调度程序&x2019;丝线

Android 具体 ;调度程序&x2019;任务的线程每个任务都应该有它’;s自己的 ;调度程序&x2019;丝线,android,multithreading,rx-java,rx-java2,Android,Multithreading,Rx Java,Rx Java2,我想为任务创建特定的调度程序线程,这样每个任务都应该有自己的调度程序线程。我们如何才能做到这一点 subject_1.onNext(task)->在调度程序的线程1上发出task_1 subject_1.onNext(task)->在调度程序的线程2上发出task_2 当工作完成时,发出任务并在同一调度程序的线程上接收它 subject_1.filter(task)->开始使用调度程序线程1上的任务_1 subject_1.filter(task)->在调度程序的线程2上启动工作任务_2

我想为任务创建特定的调度程序线程,这样每个任务都应该有自己的调度程序线程。我们如何才能做到这一点

  • subject_1.onNext(task)->在调度程序的线程1上发出task_1
  • subject_1.onNext(task)->在调度程序的线程2上发出task_2
当工作完成时,发出任务并在同一调度程序的线程上接收它

  • subject_1.filter(task)->开始使用调度程序线程1上的任务_1
  • subject_1.filter(task)->在调度程序的线程2上启动工作任务_2
伪代码:

// Filter a task A on a Task-1-Thread, filter a task B on a Task-2-Thread, and so on..
return Single
        .just(task)
        .doOnNext { subject_1.onNext(task) } // Emit a task A on a caller's thread
        .observeOn(scheduler)
        .flatMap {
            subject_2
                    // Received on Task-{x}-Thread
                    .filter { doSomeStuff() } <- Release Task-{x}-Thread

subject_1
  .flatmap {}
  .observeOn(scheduler)
  .doOnNext { subject_2.onNext(task) } // Emit a task A on task a specific thread: Task-{x}-Thread
  .subscribe()
//在task-1线程上筛选任务a,在task-2线程上筛选任务B,依此类推。。
返回单
.just(任务)
.doOnNext{subject_1.onNext(task)}//在调用者的线程上发出任务a
.observeOn(调度程序)
.平面图{
科目2
//在任务{x}线程上收到

.filter{dosomething()}听起来您在寻找:

返回一个默认的共享调度程序实例,该实例为每个工作单元创建一个新线程


@达诺,是的。我不知怎么错过了。谢谢!不过,我似乎不能接受你的答案,因为它在评论部分?我把我的评论转换成了答案。