谁能解释一下TIBCO BW Engine 的StepCount和ThreadCount属性之间的区别。我试图通过 TIBCO 文档理解但无法理解。所以,如果有人能解释一下,那就太好了。提前致谢。
2 回答
ThreadCount 属性定义了执行所有进程的线程(java 线程)的数量。因此,使用 8 个线程的默认值,您可以同时运行 8 个作业。
另一方面,StepCount 定义了线程可以上下文切换到另一个作业之前执行的活动量。
示例场景:
- 一个有 5 个活动的过程
- 线程数为 2
- 步数为 4
如果有 3 个传入请求,则前两个请求分别生成 1 个作业。第三个作业已生成,但由于线程不足而暂停。
在第一个作业完成第四个活动后,线程被释放并可以分配给另一个暂停的作业。所以第一个作业将暂停,第三个作业开始执行。
当第二个作业到达第四个活动时,该线程将被释放并可用于重新分配。所以第二个工作暂停,第一个恢复。
在第三个作业达到其第四个活动后,线程再次被释放并恢复第一个作业(并完成此作业)。之后完成第 3 项工作。
所有这些都是理论上的情景。您通常需要设置并发作业的数量(即 ThreadCount)。StepCount 几乎无关紧要,因为引擎将负责物理线程到虚拟 BW 作业的池化和映射。
线程数
线程计数概念说明了 TIBCO BW 引擎可以分配的线程数。默认线程数为 8。
线程数是指引擎中可以同时执行的作业数。因此引擎中可以并发的最大作业数被限制为线程数,即八个。该属性指定作业线程池的大小,如果在 AppSpace 级别设置,则应用于 AppSpace 中的所有 AppNode。
线程不间断地执行有限数量的任务或活动,然后让给准备好的下一个作业。从 8 个线程的默认值开始,线程数可以调整到最佳值,现在它可以加倍,直到达到 CPU 最大级别。
步数
StepCount 概念说明在将引擎线程让给在作业池中准备好的另一个作业之前,引擎线程在没有任何中断的情况下完成的活动的数量。计步器的默认值为 -1。当该值设置为 -1 时,引擎可以决定所需的 StepCount 值。较低的 StepCount 值可能会因频繁的线程交换而降低引擎性能,具体取决于具体情况。