我想在android中创建一个嵌套的sqlite数据库.即.我希望表中的特定字段以不同的表的形式获得其全新的值集.
在阅读了有关ForkJoinPool之后,我尝试了一个实验来测试ForkJoinPool与普通递归相比实际有多快.
我递归地计算了一个文件夹中的文件数,而且对我来说,普通的递归方式表现得更好 ForkJoinPool
这是我的代码.
递归任务
class DirectoryTask extends RecursiveTask<Long> {
private Directory directory;
@Override
protected Long compute() {
List<RecursiveTask<Long>> forks = new ArrayList<>();
List<Directory> directories = directory.getDirectories();
for (Directory directory : directories) {
DirectoryTask directoryTask = new DirectoryTask(directory);
forks.add(directoryTask);
directoryTask.fork();
}
Long count = directory.getDoumentCount();
for (RecursiveTask<Long> task : forks) {
count += task.join();
}
return count;
}
}
Run Code Online (Sandbox Code Playgroud)
普通递归
private static Long getFileCount(Directory directory) {
Long recursiveCount = 0L;
List<Directory> directories = directory.getDirectories();
if (null …Run Code Online (Sandbox Code Playgroud) android ×1
concurrency ×1
database ×1
forkjoinpool ×1
java ×1
nested ×1
recursion ×1
sqlite ×1