美好的一天,我是多线程领域的新手,并希望就下面的场景寻求帮助:
1)主java类将从db文件列表(Collection 1)查询到另一台服务器的ftp .
2)主类将调用另一个类(类2),该类将根据(集合1)的返回数据执行不同的过程 .
3)第2类应对第1集(第2类)的每个记录(项目)执行三个过程 . (ftp put,ftp get(返回文件),根据返回文件的数据更新数据库,并向记录(项目)的收件人发送电子邮件) .
4)子类2过程结束 .
5)第2类过程结束 .
6)主类仍然执行,直到检索到新的Collection .
鉴于上面的主要场景,可处理的最大记录(项目)仅为10,直到处理完所有记录(项目) .
问题:
a)Main类应该被认为是一个线程还是一个runnable,因为它只执行一次并让它运行一整天?
b)在第2项中可以做的最佳多线程方法是什么? (ExecutorService或Thread或Runnable)
c)对于Sub Class 2,是否应将基础类(ftp,DB-Update和Email-sender)定义为runnable?数据库更新过程依赖于FTP获取返回文件 .
d)对于子类DB-Updater,它是否也可以实现为多线程? (例如,如果要更新的记录大约是2000) .
e)如何使每个项目的子类2的过程成为单个实体?
当进程已经完成时,通知调用类(Class 2) .
希望有人可以指出我在上面的询问方面的正确方向 .
非常感谢你 .