JAVA多线程和队列问题

text_android 发布于 2013/09/03 15:23
阅读 903
收藏 0

    我这边有这样一个需求,有一个队列,和一个线程池,线程池中最多同时运行5个线程,当一个线程执行完成后线程销毁并通知主线程,主线程负责在从队列池中获取下一个对象然后新建线程并执行。
 

我这边在写程序时候不知道如何在子线程销毁时候通知主线程。

想请问这个需求如何做?有没有思路或者例子供参考下。

 

另外,java有没有办法控制子线程运行时候占用内存大小?

加载中
0
逝水fox
逝水fox
不需要吧,你构建一个容量为5的线程池(Executors.newFixedThreadPool(5)),主线程只管向线程池提交任务即可。他内部有工作队列,上一个任务处理完会自动取下一个任务并重用池中的线程
0
Beyond-Bit
Beyond-Bit

可以通过:ExecutorService pool = Executors.newFixedThreadPool(5);

已经是通过队列的方式实现线程管理了,不需要人工通知吧、

0
zwjhuhu
zwjhuhu

貌似可以通过 -Xss参数来设置栈容量,这里主要应该是影响了可定义局部变量的数量和方法调用的深度

单线程条件下可能会产生StackOverflowError的异常。

由于创建了过多的线程可能产生OutOfMemoryError,原因是由于内存限制,虚拟机不能再扩展栈内存了,这是如果通过减少堆内存和栈容量,理论上可以创建更多的线程。

返回顶部
顶部