我不確定該模式的確切名稱(代碼示例),但我確定它存在。 我有一個類作爲客戶端並連接到服務器。 我想在多線程中運行它。但這是訣竅。 我想跟蹤每個線程完成整個流程操作所需的時間。 如果操作時間在指定的範圍內,則應該啓動更多的線程,等等,直到線程太多,速度降低。多線程工人模式
我清楚嗎?
請指教......
我不確定該模式的確切名稱(代碼示例),但我確定它存在。 我有一個類作爲客戶端並連接到服務器。 我想在多線程中運行它。但這是訣竅。 我想跟蹤每個線程完成整個流程操作所需的時間。 如果操作時間在指定的範圍內,則應該啓動更多的線程,等等,直到線程太多,速度降低。多線程工人模式
我清楚嗎?
請指教......
您不能通過添加更多線程來更快速地完成單個請求。另外,如果您的所有請求都發送給同一臺服務器,則實際上您可能會通過發出多個併發請求來減慢服務器的速度。除了其他考慮因素之外,例如達到最大併發連接數。
因此,它比"run it in multithreaded"
更復雜!
模式的關鍵在於它不只是一個。
這聽起來像你想有一個TaskListener
偵聽taskStarted
和taskFinished
事件,可以使用TaskProfiler
這將決定是否在適當的時間量完成了Task
。 (這也可能要Visit
的Task
,以確定有關它的更多細節,如果你的閾值不是所有任務均勻)
從那裏,它聽起來像你那麼想TaskExecutor
這將通知TaskListener
當它開始和結束一個特定的任務。
的TaskExecutor
可能使可用increaseWorkerPool
和decreaseWorkerPool
方法可以通過從分析器/監聽器接收反饋的TaskAdministrator
進行調整。
這大多是示範性的,您可能只想將任務完成時間作爲單個taskComplete(Task task, long millis)
方法的一部分傳遞。
所有這一切都已經表示,「重生線程,直到它不工作非常好」是沒有的負載均衡技術最啓發式...
不過,我需要這個解決方案。請幫忙! –