Chinaunix
标题:
任务树过多导致StackOverflowError,如何解决?
[打印本页]
作者:
z_jingwei
时间:
2006-06-24 20:25
标题:
任务树过多导致StackOverflowError,如何解决?
我正在写一个服务,里面有很多任务,每个任务有多个子任务。
派生树是:
--Thread
--MessageObject 消息对象,可接收和处理消息
--AbstractTask 抽象任务-提供基本任务管理功能
--OperableTask 可操作任务-提供任务的操作能力,如通过管理线程来操作
--TaskNode 任务节点-生成树形结构
其中从TaskNode派生的类,在实例化时,会自动与系统中已存在的任务形成一颗树。每个任务都是一个线程,但实例(new)化时,不运行。
今天运行时,抛出了StackOverflowError错误,是栈溢出。调试了一下,发现把任务减少到15个时,没有问题,再new出一个任务后就会抛出错误。
有没有什么解决的办法?比较急!
作者:
wobushiwo
时间:
2006-06-24 22:11
估计是存放结构或使用上有问题?
假如任务之间是有关系的,可以使用别的方式存储,好好整理一下,就算任务多,之间有关系,也不应该有这种错误的
作者:
cooljia
时间:
2006-06-26 09:33
StackOverflowError是因为调用关系过于复杂, 比如说函数调用层次太多引起的.
Thrown when a stack overflow occurs because an application recurses too deeply.
复制代码
建议检查一下调用的第三方API是否存在问题, 检查你的程序是否存在循环调用或者过于复杂的调用关系.
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2