Several threading APIs are available to Carbon developers:
The Thread Manager is the cooperative multi-tasking API that predates Carbon, and should not be used unless you specifically require a cooperative threading model. These threads are built on top of MP Tasks.
MP Tasks are a pre-emptive threading API that predates Carbon, which has been updated to sit on top of pthreads. This API is very simple to use, and automatically handles the edge cases which raw pthreads often requires the programmer manage themselves.
POSIX pthreads are a popular pre-emptive threading API, available on other Unix platforms. Some aspects of this API are quite subtle however, and unless you have a need to make your threading code cross-platform you may be better served by MP Tasks. These threads are built on top of Mach threads.
Mach threads are the underlying threading API on the system, and act as the basis for all other thread types. They are not typically a good fit for an application's threading needs.
Apple published a technote on this subject: [1]
You may wish to consider using a library that hides some of the low-level details, such as the [Boost thread] library.