【问题标题】:ThreadpoolExecutor with Observables带有 Observables 的 ThreadpoolExecutor
【发布时间】:2018-11-01 16:46:15
【问题描述】:

您好,我目前正在为我的 API 使用带有 Observables 的 Schedulers.io() 来进行网络调用。我担心在生产中如果有大量请求,它可能会创建很多线程。我预计每天大约有 500k - 700k 个请求。在这种情况下,Scheduler.io() 是一个很好的候选者吗?

或者我应该创建一个自定义 threadpoolExecutor 并将其用作 Schedulers.from(myExecutor)

    //Sample
    ThreadPoolExecutor myExecutor= new ThreadPoolExecutor(corePoolSize, 
    maxPoolSize, poolKeepAliveInMillis, TimeUnit.MILLISECONDS,
                new ArrayBlockingQueue<Runnable>(corePoolSize));

我在网上看到的所有示例都使用了像 Schedulers.from(Executors.newFixedThreadPool(n)) 这样的固定线程池。

Rx java Schedulers 是否支持 ThreadPoolExecutor?哪一种是最好的方法,请指教。

【问题讨论】:

    标签: multithreading rx-java observable scheduler threadpoolexecutor


    【解决方案1】:

    RxJava 可以使用各种调度程序,例如使用Schedulers.from(threadPoolExecutor)。在一个项目中,对线程有一个强烈的要求,即它们有一个给定的名称,通常带有一个数字,并且它们有一个异常捕获器。很容易使用Schedulers.from() 将执行器重新用于调度程序。

    此外,Schedulers.io() 调度程序相当有效地回收线程。可以在很多事务之后做一个thread dump,看看线程数是比较有限的。

    【讨论】:

      猜你喜欢
      • 2012-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-09
      • 2019-12-14
      • 1970-01-01
      • 2021-09-17
      • 2014-01-17
      相关资源
      最近更新 更多