The key of working with threads are sychonizing mechanisms. A common one is a Semaphore. As you may know, a semaphore is basically a shared resource handler that flags an object as used or unused to prevent other threads from trying to use it at the same time. It isn't automatic, your program...