而外部命令的功能是将xsl转换成pdf,
那么有没有可能有的pdf生成不出来?或者说线程阻塞?数据丢失?
9 个解决方案
#1
多线程的操作,要考虑阻塞
#2
怎么防止阻塞呢?试了网上说的清空缓冲区不好用
#3
如果ProcessBuilder调用外部类已经执行了外部命令的话,我感觉应该没问题。
把这件事分成两段
一段是调用命令,调用命令之后应该和java就不搭界了。
调用之前,线程也许会出现点问题,但是个人感觉造成的影响无非是外部命令不执行或者快速两次执行。
把这件事分成两段
一段是调用命令,调用命令之后应该和java就不搭界了。
调用之前,线程也许会出现点问题,但是个人感觉造成的影响无非是外部命令不执行或者快速两次执行。
#4
外部命令执行的时候会产生log文件,我看log都生成了,log里也没有错误信息,感觉是pdf转换成功了,但是没输出来。。。。
还有就是,必须快速的调用10次8次的,才会随机有1,2次pdf文件没出来。要是只有一次两次的,或者隔几秒调用一次也不会有问题。
你觉得会是哪里的问题呢
#5
我觉得是xls转换成pdf那个软件的问题,不是java的问题。。
可以的话写一个bat文件,也模拟一下1秒钟执行十几次转换,我估计也会出问题。
#6
可能你的数据还没执行完线程切换了。sleep 时间长点试试。
#7
可能你的数据还没执行完线程切换了。sleep 时间长点试试。
sleep我试了,确实好用。不过不知道原因。
每个线程输出的pdf放在不同的文件夹里,即使切换了,别的线程执行完了不是也得回过头来执行当前这个吗。。。。。为什么会出现pdf输出不了的问题呢
#8
可能你的数据还没执行完线程切换了。sleep 时间长点试试。
再说,要用sleep的话还不如调用的时候不要那么急。。。。。
但是现在就是要求很急的情况下,也能正常
#9
怀疑是的线程数据没有写完切换到另一个了。多个线程间要利用好wait notify 和 同步。你网上搜搜这些实例。
#1
多线程的操作,要考虑阻塞
#2
怎么防止阻塞呢?试了网上说的清空缓冲区不好用
#3
如果ProcessBuilder调用外部类已经执行了外部命令的话,我感觉应该没问题。
把这件事分成两段
一段是调用命令,调用命令之后应该和java就不搭界了。
调用之前,线程也许会出现点问题,但是个人感觉造成的影响无非是外部命令不执行或者快速两次执行。
把这件事分成两段
一段是调用命令,调用命令之后应该和java就不搭界了。
调用之前,线程也许会出现点问题,但是个人感觉造成的影响无非是外部命令不执行或者快速两次执行。
#4
如果ProcessBuilder调用外部类已经执行了外部命令的话,我感觉应该没问题。
把这件事分成两段
一段是调用命令,调用命令之后应该和java就不搭界了。
调用之前,线程也许会出现点问题,但是个人感觉造成的影响无非是外部命令不执行或者快速两次执行。
外部命令执行的时候会产生log文件,我看log都生成了,log里也没有错误信息,感觉是pdf转换成功了,但是没输出来。。。。
还有就是,必须快速的调用10次8次的,才会随机有1,2次pdf文件没出来。要是只有一次两次的,或者隔几秒调用一次也不会有问题。
你觉得会是哪里的问题呢
#5
如果ProcessBuilder调用外部类已经执行了外部命令的话,我感觉应该没问题。
把这件事分成两段
一段是调用命令,调用命令之后应该和java就不搭界了。
调用之前,线程也许会出现点问题,但是个人感觉造成的影响无非是外部命令不执行或者快速两次执行。
外部命令执行的时候会产生log文件,我看log都生成了,log里也没有错误信息,感觉是pdf转换成功了,但是没输出来。。。。
还有就是,必须快速的调用10次8次的,才会随机有1,2次pdf文件没出来。要是只有一次两次的,或者隔几秒调用一次也不会有问题。
你觉得会是哪里的问题呢
我觉得是xls转换成pdf那个软件的问题,不是java的问题。。
可以的话写一个bat文件,也模拟一下1秒钟执行十几次转换,我估计也会出问题。
#6
可能你的数据还没执行完线程切换了。sleep 时间长点试试。
#7
可能你的数据还没执行完线程切换了。sleep 时间长点试试。
sleep我试了,确实好用。不过不知道原因。
每个线程输出的pdf放在不同的文件夹里,即使切换了,别的线程执行完了不是也得回过头来执行当前这个吗。。。。。为什么会出现pdf输出不了的问题呢
#8
可能你的数据还没执行完线程切换了。sleep 时间长点试试。
再说,要用sleep的话还不如调用的时候不要那么急。。。。。
但是现在就是要求很急的情况下,也能正常
#9
怀疑是的线程数据没有写完切换到另一个了。多个线程间要利用好wait notify 和 同步。你网上搜搜这些实例。