I have a small program that sends some commands to several GSM modems that are attached to a PC. These commands take some time to be executed by the modems, so I need to find a way to re-write my code in threads so that each modem can execute its commands without waiting for the other modems to finish their processes.