runtime.getruntime .exec中waitfor的用法

log.info("同步整个资源目录");
// 同步整个资源目录
List<Process> processes = new LinkedList<Process>();
//获取资源服务器
List<ResourceServer> servers = getResourceServer();
for (ResourceServer server : servers)
{
                String[] command = buildCommand(".", server);
	Process process = Runtime.getRuntime().exec(command, null, new File(resourcePath));
	processes.add(process);
}
for (Process p : processes)
{
	p.waitFor();
}
log.info("所有资源同步完成");

      在java中调用操作系统的程序时,可以使用java.lang.Runtime.getRuntime().exec() 来实现,但是这个方法在调用命令后就直接返回当前线程了;程序设计时,有时候需要在等待调用的系统程序完成操作后,当前线程才能做下一步操作,此时可以用类Process的方法waitFor()来实现,它会阻塞当先线程直至调用程序运行结束。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章