У меня есть кусок кода, как это:Как многопоточность поможет повысить производительность в этой ситуации?
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;
}
То, что я знаю, использую многопоточность может сэкономить время, когда один поток блокирован от ввода/вывода или сети. В этих синхронных операциях каждый шаг должен дождаться завершения своего предыдущего шага. Я хочу здесь максимизировать использование процессора на getTokens().
Моя первая мысль - положить getTokens() в методе запуска класса и создать несколько потоков. Но я думаю, что это не сработает, так как кажется, что он не может получить выгоду от производительности, имея несколько потоков в чистых вычислениях.
Является ли принятие многопоточности для повышения производительности в этом случае? Если да, то как я могу это сделать?
Можем ли мы спросить, может ли выполняться «материал», выполняемый 'some_stuff()' параллельно? Или, было бы только иметь смысл, чтобы один поток делал это? –
Нет общего способа сделать это. Это зависит от того, что именно делает 'some_stuff()' и как именно этот код используется в программе в целом. –
Извините за неоднозначность, some_stuff() - это функция строковой обработки с единственным параметром, полученным из результата операции чтения. Я обновил выше. Но я не уверен, что это можно сделать «параллельно» в этом случае, не могли бы вы рассказать об этом? Благодарю. – zonyang