免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2038 | 回复: 2
打印 上一主题 下一主题

任务树过多导致StackOverflowError,如何解决? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-24 20:25 |只看该作者 |倒序浏览
我正在写一个服务,里面有很多任务,每个任务有多个子任务。

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

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

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

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

论坛徽章:
0
2 [报告]
发表于 2006-06-24 22:11 |只看该作者
估计是存放结构或使用上有问题?

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

论坛徽章:
0
3 [报告]
发表于 2006-06-26 09:33 |只看该作者
StackOverflowError是因为调用关系过于复杂, 比如说函数调用层次太多引起的.

  1. Thrown when a stack overflow occurs because an application recurses too deeply.
复制代码


建议检查一下调用的第三方API是否存在问题, 检查你的程序是否存在循环调用或者过于复杂的调用关系.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP