博客专栏  >  编程语言   >  实现多线程切换与调度(协程实现)

实现多线程切换与调度(协程实现)

一步一步解读多线程实现原理(一般大家都称为协程),从 0 到 1 纯手工撸出多线程框架。从控制流切换,到时间片轮转调度,一步一个脚印。

关注
11 已关注
7篇博文
  • 01-实现多线程切换和调度实验介绍

    本系列文章旨在记录完成一个小型用户级线程创建、切换与调度框架的过程,并不能代替操作系统为我们提供的线程框架。为什么要写这样的东西呢?目的很简单,仅仅在于学习操作系统中的进程或线程切换与调度原理。所以,...

    2017-03-03 09:05
    1493
  • 02-控制流切换原理

    控制流,指的是一系列按顺序执行的指令。多控制流,是指存在两个或两个以上可以并发(宏观同时,微观不同时)执行的指令序列。比如你编写的多线程程序,每个线程就可以看成是一个控制流,多个线程允许多个控制流一起...

    2017-03-03 11:01
    415
  • 03-上下文切换

    在你没搞懂汇编级的函数调用流程以及上一篇的控制流切换原理前,阅读本文可能会相当吃力。不过你可以将这几篇文章同时打开,互相对照可能会加深理解。在上一篇中已经用 C 语言和汇编分别完成了两个小实验,告诉你...

    2017-03-05 20:02
    265
  • 04-线程设计

    线程结构体设计 线程创建函数封装 简单的调度算法

    2017-03-08 10:43
    224
  • 05-调度函数的封装与代码模块化

    本文主要解决两个问题,第一个问题,就是在上一个实验里的线程过程函数中,存在大量重复性的代码,如 pick 和 switch_to 函数;第二个问题,前面的代码都写在了一个文件里头,可读性可维护性太差,...

    2017-03-09 18:36
    227
  • 06-线程的主动切换

    线程的主动切换;主动切换发生的时机

    2017-03-10 11:39
    265
  • 07-时间片轮转调度

    终于写到时间片轮转调度了,相信大家一定很期待吧。在前面实验中,线程都属于主动切换,如果线程不主动切换,也就是说在线程过程函数中不调用 mysleep 函数,导致的结果就是此线程会一直霸占 cpu 而不...

    2017-03-10 14:34
    240
img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部