我对并发编程比较新,正在学习。
我正在使用Java JDK 7(Fork Join API)实现快速排序来对对象列表(100K)进行排序。
在不使用并发的情况下使用这个递归代码片段时,我观察到没有记忆爆炸,一切都很好。
我只是添加了代码,以便在多个核心上使用它(通过扩展类RecursiveAction),然后内存使用量急剧增加,直到达到其限制。通过一些分析,我观察到线程的高创建率,我认为这是可以预料的。但是,一个Java线程本身是否需要更多的内存,或者我在这里漏掉了什么?
快速排序必须需要很多线程,但不会比常规对象多。
当我满足阈值时停止创建RecursiveAction线程,然后切换到顺序代码(不再有线程)吗?
非常感谢。