我不确定该模式(代码示例(的确切名称,但我确定它存在。我有一个类,它作为客户端工作并连接到服务器。我想在多线程中运行它。但这就是诀窍。我想跟踪每个线程完成整个过程操作所需的时间。如果操作时间在指定的范围内,则应启动更多线程,依此类推直到线程过多,速度变低。
我清楚吗?
请指教...
通过添加更多线程来更快地完成单个请求。
此外,如果您的所有请求都发往同一台服务器,则实际上可能会通过发出多个并发请求来减慢服务器速度。除了其他考虑因素,例如达到最大并发连接数。
所以,它比"run it in multithreaded"
更复杂!
模式的关键在于它不仅仅是一个。
听起来你想要一个侦听taskStarted
和taskFinished
事件的TaskListener
,它可能会使用一个TaskProfiler
来确定该Task
是否在适当的时间内完成。(如果您的阈值不是所有任务的统一,它可能还需要Visit
Task
以确定有关它的更多详细信息(
从那里听起来你需要一个TaskExecutor
,它将在开始和完成特定任务时通知TaskListener
。
TaskExecutor
可能会提供increaseWorkerPool
和decreaseWorkerPool
方法,这些方法可以通过接收探查器/侦听器反馈的TaskAdministrator
进行调整。
这主要是演示性的,您可能只想将任务完成时间作为单个taskComplete(Task task, long millis)
方法的一部分进行传递。
综上所述,"生成线程直到它不能很好地工作"并不是最启发式的负载平衡技术......