한 폴더에서 다른 폴더로 파일을 옮기는 프로그램을 만들고 있습니다. 약 1000 개의 파일이 있으며 각 파일은 고정 된 시간에 이동해야합니다. 나는 지금 내가이 일을 할 것입니다 하나의 스레드 만이 볼 수 있듯이파일 발송자에 타이머를 사용하는 것이 가장 좋습니까?
Timer timer = new Timer();
for (int k = 0; k < fileList.size(); k++) {
FileObj fileObj = fileList.get(k);
Calendar date = Calendar.getInstance();
date.add(Calendar.SECOND, fileObj.getTimeToLaunch());
CopyTask copyTask = new CopyTask();
copyTask.setTaskName("fileName");
timer.schedule(
copyTask,
date.getTime(),
1000 * 60 * 60 * 24 * 7
);
}
: 는 지금은 같은 타이머를 사용하고 있습니다. 문제는 각 파일을 미리 정해진 시간에 이동해야하므로 이전 파일을 더 이상 이동하지 않으면 다음 파일이 나중에 이동됩니다. 파일 당 하나의 타이머를 만드는 것에 대해 생각하고 있지만 호스트가 많은 스레드를 지원하는지 여부는 알 수 없습니다.
나는 무엇이 최선의 선택 일지 알고 싶다. 아니면 다른 해결책일까요? 아마도 중간 해결책일까요?
스레드가 여러 개 있지만 드라이브가 하나 뿐인 것 같습니다. CPU가 병목이 아니며 드라이브가 있습니다. ;) –