自己打算用java寫個多線程的爬蟲,結果在存儲爬取得到數據的時候遇到了難點我是打算把采集到的網頁放在mysql數據中,然后問題來了假設我開啟了50個線程,然后爬取得到的每一個網頁存儲到一個對象,然后把對象放入集合當中,之后當對象里面的容量滿到1000就寫入一次數據庫。但是感覺這樣會有點問題但是多個線程同時操作一個集合,怎么保證安全呢,不會出錯嗎或者大神們提供一點更好的思路,初學java,講的詳細點吧
2 回答

守著星空守著你
TA貢獻1799條經驗 獲得超8個贊
樓上正解,或者把集合讀寫代碼放在synchronized代碼塊里
...
synchronized (set) {
set.add(page);
}
...
synchronized (set) {
insertToDb(set);
set.clear();
}
...
添加回答
舉報
0/150
提交
取消