Historically, hardware vendors have implemented their own proprietary versions of threads. These implementations differed substantially from each other making it difficult for programmers to develop portable threaded applications.
In order to take full advantage of the capabilities provided by threads, a standardized programming interface was required.
The POSIX standard has continued to evolve and undergo revisions, including the Pthreads specification.
Some useful links:
Pthreads are defined as a set of C language programming types and procedure calls, implemented with a
pthread.h header/include file and a thread library - though this library may be part of another library, such as
libc, in some implementations.