Traditional
<trademark class="registered">UNIX
</trademark> does not define any API nor implementation for threading, while
<trademark class="registered">POSIX
</trademark> defines its threading API but the implementation is undefined. Traditionally there were two ways of implementing threads. Handling them as separate processes (1:1 threading) or envelope the whole thread group in one process and managing the threading in userspace (1:N threading). Comparing main features of each approach: