我有這樣一段代碼:在這種情況下,多線程如何幫助提高性能?
while(){
x = jdbc_readOperation();
y = getTokens(x);
jdbc_insertOperation(y);
}
public List<String> getTokens(String divText){
List<String> tokenList = new ArrayList<String>();
Matcher subMatcher = Pattern.compile("\\[[^\\]]*]").matcher(divText);
while (subMatcher.find()) {
String token = subMatcher.group();
tokenList.add(token);
}
return tokenList;
}
我所知道的是使用多線程可以節省時間,當一個線程被阻塞的I/O或網絡。在這個同步操作中,每一步都必須等待其前一步完成。我想在這裏最大限度地提高CPU利用率getTokens()。
我首先想到的是把getTokens()一類的run方法,並創建多個線程。但我認爲它不會起作用,因爲通過在純計算操作中擁有多個線程似乎無法獲得性能優勢。
是採用多線程去幫助在這種情況下提高性能的?如果是這樣,我該怎麼做?
試問如果「東西」被'some_stuff()'可以並行完成呢?或者,只有一個線程這樣做纔有意義? –
沒有通用的方法來做到這一點。它完全依賴於'some_stuff()'的具體做法,以及程序中整體如何使用這些代碼。 –
對不明確的含義,some_stuff()是一個字符串處理函數,唯一的參數來自讀操作的結果。我已經更新過。但我不確定是否可以在這種情況下「並行」完成,請您詳細說明一下嗎?謝謝。 – zonyang