当前位置:编程学习 > JAVA >>

多线程控制问题

我用java写了一个多线程调用存储过程的程序,不同的线程调用不同的存储过程。多线程用while循环控制,当所有线程的完成标志是“1”时,自动跳出循环。部署到weblogic上时,有时能跳出循环,有时跳不出。不知道咋回事?后来我研究了一下存储过程,发现有两个存储过程对同一张表做更新,有点怀疑是它的问题,但没没有根据。请高手们指点一下。 多线程 Java 存储 WebLogic --------------------编程问答-------------------- 自己up一下。 --------------------编程问答-------------------- 你是在同一个while里,对所有的线程进行判断的么?
那段代码发来看看那 --------------------编程问答-------------------- 数据库应该不会出现同步问题的,还是看看你写的代码吧 --------------------编程问答-------------------- 没代码也没办法回答啊。 --------------------编程问答-------------------- 下面是while循环里的代码: 如果线程类的对象成功执行完调用的存储过程,getErrorInfo()获取的就是空,否则就是“1”。


 while(flag==1){
    // 当所有线程的错误信息部都不为“1”时,所有线程都运行结束
    if(!"1".equals(sr2.getErrorInfo())&&!"1".equals(sr5.getErrorInfo())&&!"1".equals(sr6.getErrorInfo())){
 flag ++; 
        }
  if(!"1".equals(sr7.getErrorInfo())&&!"1".equals(sr8.getErrorInfo())&&!"1".equals(sr12.getErrorInfo())){
 flag ++; 
     }
  if(!"1".equals(sr10.getErrorInfo())&&!"1".equals(sr13.getErrorInfo())&&!"1".equals(sr14.getErrorInfo())&&!"1".equals(sr15.getErrorInfo())){
 flag ++; 
      }
  // 当上面条件都满足时,表明所有线程都结束。此时flag=4。
  if(flag<4){
flag = 1;
}
          } --------------------编程问答--------------------
引用 2 楼 oh_Maxy 的回复:
你是在同一个while里,对所有的线程进行判断的么?
那段代码发来看看那
 是对所有的线程判读的,代码如上!  --------------------编程问答--------------------
引用 6 楼 hongtian006 的回复:
Quote: 引用 2 楼 oh_Maxy 的回复:

你是在同一个while里,对所有的线程进行判断的么?
那段代码发来看看那
 是对所有的线程判读的,代码如上! 

看了那段代码,感觉不算是多线程。单个请求要求所有存储过程成功,是要串行执行的(至少这一次判断中涉及的要串行的)。 --------------------编程问答--------------------
引用 7 楼 oh_Maxy 的回复:
Quote: 引用 6 楼 hongtian006 的回复:

Quote: 引用 2 楼 oh_Maxy 的回复:

你是在同一个while里,对所有的线程进行判断的么?
那段代码发来看看那
 是对所有的线程判读的,代码如上! 

看了那段代码,感觉不算是多线程。单个请求要求所有存储过程成功,是要串行执行的(至少这一次判断中涉及的要串行的)。
 主线程里new 多个线程,线程启动是串行的,但是执行是并行进行的。比如我先启动执行时间长得线程,它是最后一个执行完的。 头疼~
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,