Here are some simple guidelines for using threads.
Use threads for independent activities that must do a meaningful amount of work.
Use bound threads only when a thread needs resources that are available only through the underlying LWP, such as when the thread must be visible to the kernel, as in realtime scheduling.