The GNU Portable Threads library.
GNU Pth is a library
that allows for the creation of user-space threads on many
Pth creates threads that are scheduled
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 http://www.gnu.org/software/pth/.
It is distrubuted under the GNU Lesser General Public License.
Sources: the Pth package itself and its documentation.