C/S的程序,打开一个表单模板,更改该模板,模板更改完后修改以前以此模板为模型的表单。DEBUG调试通过,但是一到运行状态JVM就异常终止,也就是System.exit(1).请高手指点问题出现在哪?和多线程有关吗?

解决方案 »

  1.   

    DEBUG能够通过,而运行不通过,一般大多数情况下都是多线程之间共享无线程安全保护对象造成。你有没有多个线程共享这种对象呢,例如多个线程共享数据库连接就有这种可能。因为DEBUG的时候,断点阻塞了线程的运行,出错的概率就非常的低。
      

  2.   

    应该是多线程的问题,用sleep方法就可以运行了,但是显然用sleep方法是不可取的,
    现在的问题是对于重量级的AWT组件,是在什么时候创建其对于的peer对象的?调用setVisible(true)方法之后吗?
      

  3.   

    问题找到了,是创建peer对象的addNotify()方法好像为异步的,导致出现错误。
    但是怎么给addNotify方法加同步能?或者说如何知道到addNotify()什么时候完成。