蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 http://www.lslnet.com 2006年6月6日 10:18


任务树过多导致StackOverflowError,如何解决?

我正在写一个服务,里面有很多任务,每个任务有多个子任务。

派生树是:
--Thread
  --MessageObject          消息对象,可接收和处理消息
    --AbstractTask         抽象任务-提供基本任务管理功能
      --OperableTask       可操作任务-提供任务的操作能力,如通过管理线程来操作
        --TaskNode         任务节点-生成树形结构

其中从TaskNode派生的类,在实例化时,会自动与系统中已存在的任务形成一颗树。每个任务都是一个线程,但实例(new)化时,不运行。

今天运行时,抛出了StackOverflowError错误,是栈溢出。调试了一下,发现把任务减少到15个时,没有问题,再new出一个任务后就会抛出错误。

有没有什么解决的办法?比较急!

估计是存放结构或使用上有问题?

假如任务之间是有关系的,可以使用别的方式存储,好好整理一下,就算任务多,之间有关系,也不应该有这种错误的

StackOverflowError是因为调用关系过于复杂, 比如说函数调用层次太多引起的.
[code]
Thrown when a stack overflow occurs because an application recurses too deeply.
[/code]

建议检查一下调用的第三方API是否存在问题, 检查你的程序是否存在循环调用或者过于复杂的调用关系.



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com