解决方案 »
- 让网页走HTTPS协议的问题。
- 为什么代码执行到 stmt.executeUpdate(addsql); 就不执行了?
- 我想做J2ME的编程应该下载下面的哪一个啊,求高手。新手,谢谢!
- 求好一点的J2EE的视频教程,PPT,或电子教程!!!(散分)
- javassist 如何 写 泛型
- 如何在MYSQL中建立表关系?
- 请问EJB有哪些业务参数传递方式?
- 关于hibernate的static块不理解
- 请问用JBOSS中的jboss-j2ee.jar包里面怎么缺少Stateless呢?
- 一个关于commons-beanutils的问题,请大家帮我解决一下好吗??谢谢了!!*^_^*
- mybatis分页中使用foreach得不到参数恩替
- 关于线程和定时器timer的问题
这个方法不错,进度条有用什么技术做呢?ajax?
这个方法不错,进度条有用什么技术做呢?ajax?是的,可以用jQuery进度条插件。http://www.cnblogs.com/lhb25/archive/2012/10/24/jquery-loading-animation-and-progress-bar-plugins.html
这个方法不错,进度条有用什么技术做呢?ajax?是的,可以用jQuery进度条插件。http://www.cnblogs.com/lhb25/archive/2012/10/24/jquery-loading-animation-and-progress-bar-plugins.htmlIO任务另开线程?怎么做啊
因为我有action在跑,我就不明白怎么在开线程?请问有例子吗?
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;public class ConcurrentTotalFileSize { public static void main(String[] args) throws InterruptedException,
ExecutionException, TimeoutException {
long start = System.nanoTime();
System.out.println("Total Size: "
+ new ConcurrentTotalFileSize()
.getTotalFileSizeOfFilesInDir(new File("F:\\资料")));
System.out.println("Time: " + (System.nanoTime() - start)
/ 1.0e9);
} public long getTotalFileSizeOfFilesInDir(final File file)
throws InterruptedException, ExecutionException, TimeoutException {
if (file.isFile()) {
return file.length();
}
ExecutorService service = Executors.newFixedThreadPool(4);
long total;
try {
total = 0;
List<File> directories = new ArrayList<File>();
directories.add(file);
while (!directories.isEmpty()) {
final List<Future<SubDirectoriesAndSize>> partialResults = new ArrayList<Future<SubDirectoriesAndSize>>();
for (final File direcotry : directories) {
partialResults.add(service
.submit(new Callable<SubDirectoriesAndSize>() {
@Override
public SubDirectoriesAndSize call()
throws Exception {
return getTotalAndSubDirectories(direcotry);
}
}));
}
directories.clear(); for (Future<SubDirectoriesAndSize> future : partialResults) {
SubDirectoriesAndSize directoriesAndSize = future.get(100,
TimeUnit.SECONDS);
if (directoriesAndSize == null) {
continue;
}
total += directoriesAndSize.size;
directories.addAll(directoriesAndSize.subDirectories);
} }
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e.getMessage(), e);
} finally {
service.shutdown();
}
return total;
} public SubDirectoriesAndSize getTotalAndSubDirectories(final File file) {
long total = 0;
List<File> subDirectories = new ArrayList<File>();
if (file.isDirectory()) {
File[] children = file.listFiles();
if (children != null) {
for (File child : children) {
if (child.isFile()) {
total += child.length();
} else {
subDirectories.add(child);
}
}
}
}
return new SubDirectoriesAndSize(total, subDirectories);
}
}/**
* 记录当初文件夹的下文件的大小以及子文件夹
*
* @author Administrator
*
*/
class SubDirectoriesAndSize {
final public long size;
final public List<File> subDirectories; public SubDirectoriesAndSize(long size, List<File> subDirectories) {
super();
this.size = size;
this.subDirectories = subDirectories;
};
}
请注意你的初衷:
java I/O 一次批量插入保存文件,导致超时问题?一楼的回答包括两个步骤,步骤一其实已经解决了你的超时问题,至于步骤二,那属于优化的范畴——这个看你的需求,有没有必要做这样的优化?如果有这需求,再参考下进度条的解决方案来搞定吧!
请注意你的初衷:
java I/O 一次批量插入保存文件,导致超时问题?一楼的回答包括两个步骤,步骤一其实已经解决了你的超时问题,至于步骤二,那属于优化的范畴——这个看你的需求,有没有必要做这样的优化?如果有这需求,再参考下进度条的解决方案来搞定吧!
进度条只是用户体验,“IO任务另开线程”这个怎么做才是关键。