线程通常被界说为一个历程中代码的差别执行门路。从实现方式上划分,线程有两种类型:“用户级线程”和“内核级线程”。
用户线程指不需要内核支持而在用户程序中实现的线程,其不依赖于操作系统焦点,应用历程行使线程库提供建立、同步、调剂和治理线程的函数来控制用户线程。这种线程甚至在象 DOS 这样的操作系统中也可实现,但线程的调剂需要用户程序完成,这有些类似 Windows 3.x 的协作式多任务。另外一种则需要内核的介入,由内核完成线程的调剂。其依赖于操作系统焦点,由内核的内部需求举行建立和打消,这两种模子各有其利益和瑕玷。用户线程不需要分外的内核开支
,而且用户态线程的实现方式可以被定制或修改以顺应特殊应用的要求,然则当一个线程因 I/O 而处于守候状态时,整个历程就会被调剂程序切换为守候状态,其他线程得不到运行的机遇;而内核线程则没有各个限制,有利于施展多处理器的并发优势,但却占用了更多的系统开支。
Windows NT和OS/2支持内核线程。Linux 支持内核级的多线程。