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...
Can you be more specific. What do you mean "an existing tool" I find that simply declaring:
using namespace std
below my includes does the trick. Mind you, it's in the MS Visual C++ compiler. It's been awhile since I've used the borland tools.