// parallel processing
int processors = Runtime.getRuntime().availableProcessors();
ExecutorService executorService = Executors.newFixedThreadPool(threads);
final List<String> albumIds2 = new ArrayList<String>();
long start2 = System.nanoTime();
for (final HColumn<String, String> column : result.get().getColumns()) {
Runnable worker = new Runnable() {
@Override
public void run() {
albumIds2.add(column.getName());
}
};
executorService.execute(worker);
}
long timeTaken2 = System.nanoTime() - start2;
上記の例のようなList<String>
アルバム ID を作成するコードがあります。列は cassandra データベースからのスライスです。アルバムのリスト全体を作成するのにかかった時間を記録します。
以下のように強化されたforループを使用して行ったのと同じです。
QueryResult<ColumnSlice<String, String>> result = CassandraDAO.getRowColumns(AlbumIds_CF, customerId);
long start = System.nanoTime();
for (HColumn<String, String> column : result.get().getColumns()) {
albumIds.add(column.getName());
}
long timeTaken = System.nanoTime() - start;
アルバムの数がどれほど多くても、for each ループが完了するまでの時間が常に短いことに注意してください。私はそれを間違っていますか?または、複数のコアを備えたコンピューターが必要ですか。私は並列コンピューティングの概念全体に本当に慣れていないので、私の質問がばかげている場合はご容赦ください。