多线程工作线程模式



我不确定该模式(代码示例(的确切名称,但我确定它存在。我有一个类,它作为客户端工作并连接到服务器。我想在多线程中运行它。但这就是诀窍。我想跟踪每个线程完成整个过程操作所需的时间。如果操作时间在指定的范围内,则应启动更多线程,依此类推直到线程过多,速度变低。

我清楚吗?

请指教...

您无法

通过添加更多线程来更快地完成单个请求。

此外,如果您的所有请求都发往同一台服务器,则实际上可能会通过发出多个并发请求来减慢服务器速度。除了其他考虑因素,例如达到最大并发连接数。

所以,它比"run it in multithreaded"更复杂!

模式的关键在于它不仅仅是一个。

听起来你想要一个侦听taskStartedtaskFinished事件的TaskListener,它可能会使用一个TaskProfiler来确定该Task是否在适当的时间内完成。(如果您的阈值不是所有任务的统一,它可能还需要Visit Task以确定有关它的更多详细信息(

从那里听起来你需要一个TaskExecutor,它将在开始和完成特定任务时通知TaskListener

TaskExecutor可能会提供increaseWorkerPooldecreaseWorkerPool方法,这些方法可以通过接收探查器/侦听器反馈的TaskAdministrator进行调整。

这主要是演示性的,您可能只想将任务完成时间作为单个taskComplete(Task task, long millis)方法的一部分进行传递。

综上所述,"生成线程直到它不能很好地工作"并不是最启发式的负载平衡技术......

最新更新