首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >When javarx2 Flowable subscribesOn Schedulers.computation如果任务超过线程池大小,会发生什么?

When javarx2 Flowable subscribesOn Schedulers.computation如果任务超过线程池大小,会发生什么?
EN

Stack Overflow用户
提问于 2018-06-26 16:16:58
回答 1查看 62关注 0票数 0

当在Schedulers.computation上订阅javarx2 Flowable时,如果任务超过线程池大小,会发生什么?

我读到了Scheduler,默认线程计数是可用的CPU数量。但是,谁来处理计划外的任务呢?

我如何了解它的行为?

代码语言:javascript
复制
    Flowable
            .fromArray(accountsMap.keySet().toArray())
            .flatMap(key ->

                Flowable
                    .just(key)
                    .subscribeOn(Schedulers.computation())
                    .doOnNext(sameKey -> {

                        //do my stuff

                    })
            )
            .blockingSubscribe(a ->
                {
                    logger.info("blockingSubscribe received: " + a);
                }
            );

答案的一个重要部分是,我在哪里可以了解到这些信息?因为我发现很难从official class description中获得

EN

回答 1

Stack Overflow用户

发布于 2018-06-26 18:37:40

默认调度器在使用Executors.newScheduledThreadPoolExecutor()调用创建工作线程时,不会限制调度的任务数量。

不幸的是,对于RxJava来说,这是一个不可恢复的情况,因为它不能向观察者发出错误信号,因为它可能会违反协议(并发)。(即,一般而言,错误信号也应该被调度,这可能是不可能的,因为这也可能被拒绝,另外另一端可能仍在并发执行。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51038085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档