操作系统原理之线程

q1871901600 发布于 2024-11-21 54 次阅读


描述:什么是线程?
线程是OS(操作系统)调度CPU的最小单元,也叫轻量级进程(Light Weight Process),
在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性,
并且能够访问共享的内存变量。CPU在这些线程上高速切换,让使用者感觉到这些线程在同
时执行,即并发的概念,相似的概念还有并行!

内核线程(KLT)

内核线程(KLT):系统内核管理线程(KLT),内核保存线程的状态和上下文信息,线程阻塞不会
引起进程阻塞。在多处理器系统上,多线程在多处理器上并行运行。线程的创建、调度和管
理由内核完成,效率比ULT要慢,比进程操作快

用户线程(ULT)模型

用户线程(ULT):用户程序实现,不依赖操作系统核心,应用提供创建、同步、调度和管理线程
的函数来控制用户线程。不需要用户态/内核态切换,速度快。内核对ULT无感知,线程阻
塞则进程(包括它的所有线程)阻塞。

状态

Java 中线程的状态分为 6 种:

  1. 初始(NEW):新创建了一个线程对象,但还没有调用 start()方法。
  2. 运行(RUNNABLE):Java 线程中将就绪(ready)和运行中(running)两种 状态笼统的称为“运
    行”。
    线程对象创建后,其他线程(比如 main 线程)调用了该对象的 start()方法。 该状态的线程位于可
    运行线程池中, 等待被线程调度选中, 获取 CPU 的使用权, 此时处于就绪状态(ready)。就绪状
    态的线程在获得 CPU 时间片后变为运行中 状态(running)。
  3. 阻塞(BLOCKED):表示线程阻塞于锁。
  4. 等待(WAITING):进入该状态的线程需要等待其他线程做出一些特定动作 (通知或中断)。
  5. 超时等待(TIMED_WAITING):该状态不同于 WAITING,它可以在指定的时 间后自行返回。
  6. 终止(TERMINATED):表示该线程已经执行完毕。
一个会写python的Java工程师
最后更新于 2024-11-21