草庐IT

Spring ThreadPoolTask​​Scheduler vs ThreadPoolTask​​Executor

coder 2023-05-12 原文

Spring documentation 中提到那:

ThreadPoolTaskScheduler actually implements Spring's TaskExecutor interface as well, so that a single instance can be used for asynchronous execution as soon as possible as well as scheduled, and potentially recurring, executions.

那么我们希望在哪些场景中使用 ThreadPoolTask​​Executor 实例而不是 ThreadPoolTask​​Scheduler 实例?

我目前正在使用 Spring XML。我正在创建 ThreadPoolTask​​Scheduler 的 bean,如下所示:

<task:scheduler id="myScheduler" pool-size="1"/>

ThreadPoolTask​​Executor实例的bean可以被创建为

<task:executor id="executor" pool-size="10"/>

最佳答案

您在 Spring 文档中引用的那句话只是说您可以使用调度程序来执行任务,但这不是它的主要目的。 ThreadPoolTask​​Executor 通过其corePoolSize 提供线程池的细粒度配置。 , maxPoolSize , keepAliveSecondsqueueCapacity特性。 ThreadPoolTask​​Scheduler 等调度程序不提供此类配置。

因此,在两者之间进行选择会产生以下问题:我是否需要执行或计划执行任务?

关于Spring ThreadPoolTask​​Scheduler vs ThreadPoolTask​​Executor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33453722/

有关Spring ThreadPoolTask​​Scheduler vs ThreadPoolTask​​Executor的更多相关文章

  1. javascript - "Unsubscribe"函数回调/Observable 中的钩子(Hook) "executor"函数 - 2

    我对“dispose”或“unsubscribe”函数的目的感到困惑,它(可选)从可观察的“executor”函数返回,如下所示:constRx=require('rxjs');constobs=Rx.Observable.create(obs=>{//weareintheObservable"executor"functionobs.next(4);//wereturnthisfunction,whichgetscalledifweunsubscribereturnfunction(){console.log('disposed');}});consts1=obs.subscribe

  2. python - 游戏。 Windows 10。使用 ProcessPoolExecutor 在 loop.run_in_executor 之后创建额外的窗口 - 2

    问题重现环境:操作系统:Windows10(主机)中央处理器:8python:3.6.6游戏版本:1.9.4“构建器”:cx_Freeze版本5.1.1问题未重现的环境:操作系统:Ubuntu14.04(guest,虚拟机)中央处理器:4python:3.6.6游戏版本:1.9.4“构建器”:cx_Freeze版本5.1.1脚本importasyncioimportpygameimportmultiprocessingfromconcurrent.futuresimportProcessPoolExecutorfromconcurrent.futuresimportThreadPool

  3. php - 为什么 suhosin.executor.disable_emodifier 不起作用? - 2

    我在ubuntu12.04上运行PHP5.6作为apache2.4模块Suhosin从源安装Suhosin已启用,我可以在phpinfo()函数输出中看到它。我在suhosin.ini中有这些行:suhosin.executor.disable_eval=Onsuhosin.executor.disable_emodifier=On而且我还可以看到它们在phpinfo()中启用。全局和本地。但出于某种原因很简单eval('echo5;');只给我看那个该死的“5”!!!同样如此preg_replace("/.*/e","eval('echo5,PHP_EOL;')",".");如何启用

  4. java - 列出 ThreadPoolTask​​Executor 中所有正在运行/排队的线程 - 2

    我在Spring中使用ThreadPoolTask​​Executor来安排我的任务。有没有办法获取该任务执行器/池的每个正在运行和排队的线程的列表或其他信息? 最佳答案 也许不是很优雅,但通过这种方式我可以从已知的执行器中获取所有线程(使用startsWith()前缀)。SetthreadSet=Thread.getAllStackTraces().keySet();for(Threadthread:threadSet){if(thread.getName().startsWith("MyExecutor")){System.ou

  5. java - Thread 在这里比 Executor 更受青睐吗? - 2

    据我了解,Executors有助于处理runnable的执行。例如。当我有几个工作线程完成它们的工作然后终止时,我会选择使用执行程序。执行者将处理创建和终止执行工作线程所需的线程。但是现在我面临着另一种情况。固定数量的类/对象应封装自己的线程。因此线程在创建这些对象时启动,线程将在这些对象的整个生命周期内继续运行。少数对象依次在程序开始时创建并在整个运行时存在。我想在这种情况下线程比执行器更可取,但是当我阅读互联网时,每个人似乎都建议在任何可能的情况下使用执行器而不是线程。有人可以告诉我这里是选择Executors还是Threads,为什么?谢谢 最佳答案

  6. java - Spark Driver 内存和 Executor 内存 - 2

    我是Spark的初学者,我正在运行我的应用程序以从文本文件中读取14KB数据,进行一些转换和操作(收集、收集AsMap)并将数据保存到数据库我在我的macbook上本地运行它,它有16G内存,8个逻辑核心。Java最大堆设置为12G。这是我用来运行应用程序的命令。bin/spark-submit--classcom.myapp.application--masterlocal[*]--executor-memory2G--driver-memory4G/jars/application.jar我收到以下警告2017-01-1316:57:31.579[Executortasklaunc

  7. java - 什么时候使用 Callable 对象在 Java Executor 中调用 call() 方法? - 2

    这是来自example的一些示例代码.我需要知道的是call()何时在可调用对象上被调用?是什么触发了它?publicclassCallableExample{publicstaticclassWordLengthCallableimplementsCallable{privateStringword;publicWordLengthCallable(Stringword){this.word=word;}publicIntegercall(){returnInteger.valueOf(word.length());}}publicstaticvoidmain(Stringargs[

  8. java - Executor 代替 ExecutorService 有没有什么场景。 Executor 接口(interface)背后的意图? - 2

    我想知道是否有任何理由使用Executor而不是ExecutorService。据我所知,JDK中没有实现Executor接口(interface),它也不是ExecutorService,这意味着您必须关闭该服务,以便没有内存泄漏。您无法关闭Executor,但可以使用ExecutorService来关闭它。那么,有没有什么场景可以使用类似的东西:privatefinalExecutor_executor=Executors.newCachedThreadPool();Executor接口(interface)背后的意图是什么?示例表示赞赏。 最佳答案

  9. java - 使用 java.util.concurrent.Executor 阻止 tomcat 停止 - 2

    背景:我需要使用java.util.concurrent.Executor来序列化WebService中一些遗留代码的执行。我在WebService类中添加了一个成员变量executor。它由springframework从外部注入(inject)。执行器bean定义如下:Tomcat版本:6.0.22Java版本:1.6Spring框架:2.5.5问题:WS按预期工作。我们将它推出到Linux服务器上。然后我们意识到tomcat停止脚本不能再停止服务。我对tomcat实例使用kill-3。在线程转储中,我找到了这些行:"pool-2-thread-1"prio=10tid=0xad6

  10. java - java中的Executor服务-->如何将单线程代码转换为使用executor - 2

    如果这个问题听起来很愚蠢,请原谅我——我才刚刚开始使用Executor。我有一个以这种方式使用线程的现有Java应用程序——基本上使用独立线程——privateThreadspawnThread(){Threadt=newThread(){StringtaskSnap=task.toString();publicvoidrun(){try{println(task.run(null));}catch(InterruptedExceptione){println("ITC-"+taskSnap+"interrupted");}}};returnt;}从上面可以看出,该函数返回一个新线程。

随机推荐