We have developed a application in Java that does a remote data backup. We have written the program that reads the directory contents recursively and saves it to a HSQLDB database. This process is working fine however the backup is very slow when the amount of data is large. We are thinking of using multithreading to make the process faster. The problem is that how do we divide the work of reading the directories to the threads. Can you suggest any some algorithm for doing this.