Linux is a new platform to me. I\'ve coded on Windows in c++ for a number of years and have become comfortable with multithreading on that platform.
Along comes C++
I could give you a really fancy answer but alas, this is where I learned them and it is a good introduction:
http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html
You use pthread_mutex_t for syncronization and pthread_join probably handles the wait for multiple tasks problem. It works exactly as you would expect.