for downloadthread in downloadthreadsdownloadthread join(print('done 'the 'done string will not be printed until all of the join(calls have returned if thread object has already completed when its join(method is calledthen the method will simply return immediately if you wanted to extend this program with code that runs only after all of the comics downloadedyou could replace the print('done 'line with your new code launching other programs from python your python program can start other programs on your computer with the popen(function in the built-in subprocess module (the in the name of the popen(function stands for process if you have multiple instances of an application openeach of those instances is separate process of the same program for exampleif you open multiple windows of your web browser at the same timeeach of those windows is different process of the web browser program see figure - for an example of multiple calculator processes open at once figure - six running processes of the same calculator program every process can have multiple threads unlike threadsa process cannot directly read and write another process' variables if you think of multithreaded program as having multiple fingers following source codethen having multiple processes of the same program open is like having friend with separate copy of the program' source code you are both independently executing the same program