The GNU Portable Threads library.

GNU Pth is a library that allows for the creation of user-space threads on many operating systems.

Pth creates threads that are scheduled cooperatively, rather then preemptively as many "standard" threading libraries do. (Such as pthreads on Linux.) This also tends to be more portable, and probably makes it easier to avoid race conditions. The disadvantage of this is that it doesn't allow for multiple processors to be taken advantage of, since that requires kernel-space threading, which is usually preemptive. Apparently, much of the features of Pth are based upon what can be supported on the most UNIX-like systems.

Pth also offers emulation of pthreads, in an attempt to provide compatiblity with exsiting applications.

GNU Pth can be obtained from It is distrubuted under the GNU Lesser General Public License.

Sources: the Pth package itself and its documentation.