大家一起来探讨一下一个多线程任务的设计吧,希望高手进来指教
TGITCIC Java领域优质创作者 博客专家认证 2008-09-28 10:17:29 假设有N条记录要从数据库中读出,然后导成文件
我是想到了以下两个方法,但也有些疑问
一、固定的5个线程,每个线程处理100条记录
问题是:当这5个线程处理外500条记录后,怎么办?全部WAIT()在那边,然后当新的500条记录分配下来后一个个NOTIFY,那这5个线程如何让其再次运行?
重新NEW出来5个线程,那这样JVM不是来不及释放
二、线程池,线程池和JDBC连接池一样,开5个线程,然后每个线程处理100条记录,把N条记录一起扔给这个线程池,此线程池固定处理是500条记录,其他记录排队?
问题是: 排队?排在那边,也是排在内存中啊?那我有100万条记录,就是有100万-500条记录记录排在内存中啊?我用多线程处理就是希望想分批读出记录做处理,
这样一来不是起不到效果了?
请大家参与讨论