最近在做一个c语言子集的解释器,碰到了一些问题我的界面是用swing做的,有一个button,点击这个button后就会开启一个线程去调用Interpreter的对象去进行解释,
但是如果输入程序含有死循环的话,整个程序就死了,界面点不动,而解释的线程又进入了死循环。本来我是想在界面上做一个终止,来结束解释线程的,但界面已经点不动了。请问各位大侠,这个问题怎么解决啊

解决方案 »

  1.   

    “一个线程去调用Interpreter的对象去进行解释”死循环只在一个线程里,真么会影响其他线程?
      

  2.   

    点击button,执行一个SwingWorker。
      

  3.   

    回复一楼:因为那个死循环有write语句,而解释write语句的时候把输出重定向到了swing线程里的Jtextarea,好像是死锁了。我试了下,如果循环里不涉及write语句的话界面就不会瘫。
      

  4.   

    write语句的时候把输出重定向到了swing线程里的Jtextarea,
      

  5.   

    界面不动就不要在界面添加了,因为该java程序已经占满了
    试着在程序里找出原因 并跳出来避免死锁