我有一個多線程應用程序可以獲取不同的網頁。爲此,我在線程之間設計了父子關係。 家長只是從其頁面採取不同的網址,併產生新的線程。這些線程持續不斷地獲取頁面,直到頁面更改。主線程輪詢每2分鐘在主頁的變化(並創建新的線程,如果有任何變化)算法中多線程應用程序在3天后停止
while(true){
find_new_instances(...);
if we get any new, then
Thread.start(...);
Thread.sleep(120000);
}
主線程具有存儲的URL字符串數組列表
主線程它創建的每個新線程。我聽說線程應該只使用不可變對象進行寫操作。這裏使用的可變列表是否會導致問題? 在子線程中,會執行諸如頁抓取和數據庫插入之類的活動。
然而,應用逐步增加對內存的需求,並最終死鎖/餓死進入凍結狀態或內存不足,如果沒有。的線程太大。 我無法嘗試任何東西。如果您遇到類似問題,請提出建議。
什麼的線程數?這個循環會在很短的時間內創建很多線程,並讓它們每個都睡很長時間。對我來說沒什麼意義... – Random
@Random:線程數大約爲50(其他人被創建和銷燬) – Sumit
@nos:線程之間沒有數據共享,只有父/主線程保持運行線程數 – Sumit