You can use the Thread Manager to provide cooperatively scheduled threads, or multiple points of execution, in an application. You can think of the Thread Manager as an enhancement to the classic Mac OS Process Manager, which governs how applications work together in the Mac OS cooperative multitasking environment.
Consider using the Thread Manager for applications with more than one thread, especially if these threads can execute only in the cooperative multitasking environment of the classic Mac OS Process Manager. For example, Human Interface Toolbox functions, such as those belonging to the Window Manager and Control Manager, are not reentrant. Hence, they can't be scheduled preemptively but must instead rely on the classic Mac OS cooperative multitasking model. If your application would benefit from having two separate paths of execution, each of which calls Human Interface Toolbox functions, you can safely implement these paths in Thread Manager threads.
Alternatively, you should consider using the Multiprocessing Services to implement separate paths of execution for tasks that are reentrant and can therefore can be preemptively scheduled.
Using Thread Manager routines, you can create threads and thread pools and set them up to run; turn scheduling on and off; work with stacks; create dialog boxes that yield control to other threads; pass information between threads; install custom scheduling and context-switching functions; and use threads to make asynchronous I/O calls.