# create n numbers of threads #create ftp connection/login while (1) { wait msg Q(); 1. dequeue element 2. download file from ftp server. 3. delete file. } # Master Thread #create ftp connection/login while (1) { if 'files exist on ftp server' { enqueue files to download } }