2.1进程与线程(2)

2.1.2 线程

一. 线程
  1. 线程与进程
    引入进程是为了更好的使多道程序并发执行,提高资源利用率和系统吞吐量。
    引入线程是为了减小程序在并发执行时的时空开销,提高并发性能。


2. 属性
(1)进程是资源分配的基本单位,线程是调度的基本单位。
(2)同一进程的各线程共享进程拥有资源。
(3)同一进程内的线程切换不会导致进程切换。
3. 实现方式
(1)用户级线程
(2)内核级线程(核心态)
(3)组合级线程
操作系统只能看见内核级线程,所以内核级线程才是CPU分配的单元

二. 多线程模型(三种)

什么是多线程?
一个程序可以对应多个线程,每个线程对应执行不同的任务。
(1)多对一模型(多个用户级对应一个内核级线程)

  • 优点:线程管理在用户空间进行,效率高
  • 缺点:并发性不高。(若一个线程阻塞,则整个进程阻塞)

(2)一对一模型

  • 优点:并发性强
  • 缺点:创建线程开销大

(3)多对多模型(比较合理)

三. 注意
  1. 进程获得资源,里面的线程共享进程空间。
  2. 多线程和多任务区别?
    (1)多线程是对于程序而言,表示可执行的线程数
    (2)多任务是对于操作系统而言,表示可同时执行的程序数。
  3. 并发和并行区别?
    (1)并发是在一段时间内,进程宏观上同时执行,微观上串行执行。
    (2)并行是在某一时刻,同时执行。
  4. 父进程创建子进程,和主程序调用子程序有什么不同?
    (1)父进程创建子进程,两个进程可并发执行。
    (2)主程序调用子程序时,会停在调用点,直到子程序返回。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章