计算机类大厂实习春招秋招开发算法面试问答练习题
下面有十个非常重要且常问,面试者却注意不到的问题,我们一个个来看,一个个来学。
线程创建到删除过程中,底层是怎么实现的
1.线程创建
线程创建是线程生命周期的起点。在操作系统中,线程可以通过多种方式创建,但无论哪种方式,最终都需要操作系统内核的参与或支持。
用户级线程(User-Level Threads, ULT)
在用户级线程模型中,线程的创建、同步、调度和管理都是在用户空间完成的,不直接依赖于操作系统内核。这种模型通常使用线程库(如POSIX线程库pthread)来管理线程。
创建用户级线程时,线程库会在用户空间中分配资源(如线程控制块TCB和线程栈),并初始化线程的状态和属性。然而,由于用户级线程不直接由操作系统内核管理,它们无法直接利用多核处理器的优势,且一个线程的系统调用阻塞会导致整个进程中的线程都被阻塞。
内核级线程(Kernel-Level Threads, KLT)
在内核级线程模型中,线程的创建、调度和管理都是由操作系统内核直接进行的。
当应用程序请求创建一个新线程时,操作系统内核会分配必要的资源(如内核线程控制块、线程