近来在做一个模块,用的是一个如下的大概流程:
涉及的主要类:
Task 任务类--自定义
Container 存储的容器类--自定义
外部程序调用我做的模块接口传给我一个String字符串;我将这个字符串解析、封装成一个任务Task,然后将这个任务Task加入Container容器中。后台会启动多个线程去容器Container中搜索任务,然后将任务拿出来处理掉。
现在在实际应用中出现这样一个问题,即外部调用程序给我的任务很多很急,然后所有的任务Task都往容器Container中扔。后台从容器中检出任务并处理掉的线程来不及很快的处理完容器Container中已有的任务,结果导致Container中的东西越来越多,最后出现 OutOfMemory的问题。
各位大侠,如何处理这个问题啊,应该在什么地方加入什么机制来解决这个问题,希望大家多给我出几个主意。
比较头疼,先谢谢大家!