我有Java應用程序,它運行線程爲每個線程執行N次任務,並且可以設置線程編號。 每個線程的每個作業迭代需要20秒到1-1.5分鐘。每個線程必須爲該作業做大約25000-100000次迭代。 因此,以前添加的作業有更多的「完成作業」,他們有更高的優先級(如我認爲的JVM,但優先級不設置,他們有同樣的優先programmly)。但是在添加一些新任務之後,我需要線程均勻地完成任務。 比如有5000個線程100000次反覆做100個就業機會:多線程性能
- 舊作業#1做
- 老#2任務做
- ...
- 舊工作#100做它
但是,當我添加例如工作#101,然後我會看到,線程不會像第一份工作一樣快地運行。 我已經使用yield()和sleep(50),但它似乎不是很好的結果。 那麼你能告訴我我做錯了什麼,以及如何爲太多的線程做出卓越的性能?
大約有多少個線程同時運行? – millimoose
你有多少個核心?您可能會發現線程的最佳數量等於您擁有的核心數量。 –
@Inddial大約10000-20000。 – purple