线程上下文的切换

线程上下文的切换巧妙的利用了时间片轮转的方式,CPU给每个任务都服务一定的时间,然后把当前任务的状态保存下来,在加载下一任务的状态后,继续服务下一个任务;线程状态的保存及其再加载,就是线程的上下文切换。时间片轮询保证CPU的利用率:
在这里插入图片描述
对于线程切换的几个关键词的解释:

  • 进程
    进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。

  • 线程
    线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。一个进程可以有一个或多个线程,各个线程之间共享程序的内存空间(也就是所在进程的内存空间)。一个标准的线程由线程ID,当前指令指针PC,寄存器和堆栈组成。而进程由内存空间(代码,数据,进程空间,打开的文件)和一个或多个线程组成。

进程和线程的区别:
a.线程是程序执行的最小单位,进程是资源分配的最小单位;
b.一个进程由一个或多个线程组成,各个线程之间共享进程的内存空间;
c.线程上下文切换速度高于进程切换;

  • 上下文
    是指再某一时间CPU寄存器和程序计数器的内容;

  • 寄存器
    是CPU内部数量少但是速度很快的内存。寄存器通常对常用值的快速访问来提高计算机程序运行的速度;

  • 程序计数器
    是一个专门的寄存器,用于表明系统中CPU的执行位置,存的值为正在执行的指令或者下一个需要被执行的指令的位置;

  • PCB(Process Control block)
    上下文切换可以认为是内核再CPU上对于进程(包括线程)进行切换,上下文切换的信息是保存在进程控制块PCB中的;

  • 上下文切换的活动
    a.挂起一个线程,将这个进程在CPU中的状态存储于内存中的某处;
    b.在内存中检索下一个进程的上下文并将其CPU的寄存器恢复;
    c.跳转到程序计数器所指定的位置;

  • 什么是多线程?什么是多进程?
    多进程:Windows 应用程序中消息有两种送出途径;直接和排队。事件驱动不是由时间的顺序来决定,而是由时间的发生来控制;多进程就是多个事件同时发生;
    多线程:指从软件或硬件的基础上实现多个线程的并发执行的技术,进而提升整体处理性能;

  • 多进程和多线程的优缺点分析:

| 多进程

优点缺点
进程之间相互独立,不影响主程序的稳定逻辑控制复杂,需要与主程序交互
通过增加CPU可提升性能需要跨边界传输,调度开销比加大
尽量减少线程加锁解锁的性能消耗
总体能够达到的性能上限非常大

|多线程

优点缺点
无需跨边界,线程直接可实现共享每个线程与主程序共享内存,内存受限2GB
逻辑控制方便,JDK有自带的控制方法线程之间的同步和控制麻烦
消耗的总资源比进程小
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值