我目前正在開發一個使用spring啓動的web應用程序,並且在服務層有問題。在Spring Boot服務上運行有限數量的線程
我在我的服務層有一個沉重的方法。如果多個用戶調用相同的服務,則應用程序由於內存不足而停止。所以我想限制只有該方法的並行運行線程的數量。到目前爲止,我已經在該方法中使用了同步。但它會將其限制爲單線程方法。
@Service
public class DocumentService{
private synchronized void doReplacement(){
//should have limited no of multi threads (eg. 3)
}
private void normalMethod(){
//no restrictions
}
}
我能做些什麼來實現這個任務。任何幫助,將不勝感激。
執行申請時手動鎖定的方法,如果沒有....也許[這](HTTP ://stackoverflow.com/questions/16591147/lock-a-runnable-until-finished)或[this](http://stackoverflow.com/questions/21124879/how-do-i-make-java-wait-爲方法來完成之前繼續)可能會幫助... –
那麼你可以創建和使用執行程序來限制線程數。順便說一句,檢查是否沒有內存泄漏...... –
由於spring框架創建服務層中的所有線程,我無法手動處理線程。有沒有辦法? – Ravindu