2 wangcong1113 wangcong1113 于 2016.01.28 22:07 提问

大神帮忙,java调用sqlplus之后,如何实现多线程

1.java调用sqlplus将数据库信息写入本地sql文件(我用的是spool命令将数据库download到本地)
2.在java环境中使用这个本地sql文件,
即上述2个步骤在一个main函数中完成。
我在实际操作中,第二步操作报的错是找不到这个本地sql文件,我猜想可能是第一步没完成的时候,第二步已经开始执行,所以我想用多线程并发。
我将上面2个步骤用2个进程thread1,thread2,因为步骤2必须等步骤1结束才能执行,所以我调用thread1.start(),thread1.join(),以及thread2.start()
但实际情况是线程1阻塞了,有人说我没用清除sqlplus缓存,求解该如何解决,谢谢!!!

2个回答

wangcong1113
wangcong1113   2016.01.28 22:10

我在使用thread1时,调用procces类的waitfor()方法发生了阻塞,如果不使用的话,一切正常,但程序只执行出了步骤1,没执行出步骤2的结果

holzkoepfer
holzkoepfer   2016.01.28 23:06

你设断点调试一下,看看第一部完成后Sql文件是否存在。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java调用sqlplus执行批量脚本获得输出结果和调用.bat文件
//FileOutputStream fos = null;        InputStream in = null; Process p = null; //BufferedReader br=null; InputStreamReader isr=null; StringBuffer sb = new StringBuffer(); sb.append(sqlPlus...
一个简单游戏的程序
简单游戏的程序代码,大神们帮忙看看。简单游戏的程序代码,大神们帮忙看看。简单游戏的程序代码,大神们帮忙看看。简单游戏的程序代码,大神们帮忙看看。简单游戏的程序代码,大神们帮忙看看。
【推荐】Java工程师如何从普通成为大神值得一读
本文源自 http://www.hollischuang.com/archives/489 一点感悟     java作为一门编程语言,在各类编程语言中作为弄潮儿始终排在前三的位置,这充分肯定了java语言的魅力,在实际项目应用中,我们已经无法脱离javaa(Ps当然你可以选择不使用),但它的高性能,稳定性,扩展性已经深入到每一个java编程工程师的骨髓里,随着时间的推移,我相信更多的
java多线程之Runnable同时执行同一资源实例
这是个卖票实例,采用多线程,模拟不同窗口来卖票,票数是共同资源。   piao.java package tong; public class piao implements Runnable { private static int count = 10; @Override public void run() { w
Java多线程实现异步调用实例
Java多线程实现异步调用实例。运行Main可以看到结果。main是主线程,另有A,B,C三个线程用不同的时间跑完。
java多线程处理分库分表数据
最近对海量数据分析突然来了兴趣,加上之前公司有daas相关的内容一致
Java之多线程与方法调用
简单理解线程与进程: 线程指的是程序里不同的执行路径,看上述的运行顺序图,机器上实际上运行的是线程; 进程是一个静态的概念,一个进程里有一个主线程叫做main()方法,是一个程序、一个进程里面的不同的执行路径。
java做的Sqlplus
一个java写的sqlplus,功能已经很完善,欢迎大家使用,有什么不好的地方请告诉我。
Java多线程调用多个服务
Java多线程调用多个服务          有时候我们在同一个程序里面想实现一系列的功能,为了让这些功能无缝连接起来,我们采用多线程来调用这些服务。代码思路如下,主要通过构造方法来实现: /** * 多线程调用多个服务从而完成一个完整的功能 * */ package com.zy.socket; import org.slf4j.Logger; import org
JAVA多线程实现的三种方式
JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。 1、继承Thread类实现多线程 继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例