This document discusses several models for implementing threads:
1) The one-level model treats user and kernel contexts as a single thread scheduled by the kernel.
2) The variable-weight processes model shares resources between processes like threads.
3) The two-level model separates user and kernel contexts into user threads scheduled on kernel threads.