线程
Function_18
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线程简单实现
github地址 https://github.com/FunctionDou/mythread/tree/master 环境 如果make之后出现无法编译的情况, 那么可能缺少了-m32条件的环境. 解决 缺少链接32位的环境, ubuntu中需要下载 sudo apt-get install build-essential module-assistant sudo apt-get insta...原创 2019-01-17 21:45:46 · 403 阅读 · 0 评论 -
线程-函数调用
引言 本专题是手动实现一个“线程”, 写这个项目的起因主要是为了为学习操作系统的人而准备的练手和巩固线程和进程调用的知识. 而这个小项目是从我所写的玩具操作系统中抽离出来再加以改善的, 所以并不乎涉及更加底层的东西, 毕竟我也不会. 前言 在讲解小项目之前要先明白什么是函数调用? 函数又是怎么实现调用并返回到调用函数的函数体中? 可能你不明白为什么线程会跟函数调用有关, 那是因为我们实现的功能只是...原创 2019-01-17 21:47:28 · 2128 阅读 · 1 评论 -
线程-线程调用1
前言 上一节我们分析了函数调用主要是将rbp(栈基址寄存器)压栈最后函数退出后将其弹栈实现调用和恢复现场. 而本节我们再接再厉接着分析线程调用的过程. 几个寄存器 在我们写代码之前要先对基本的寄存器有一个了解, 毕竟待会我们会先写一段汇编代码, 所以必须对寄存器要有一个简单的了解. rsp : 栈顶寄存器. 它始终指向一个栈的顶部. rbp : 栈基址寄存器. 它是同rsp寄存器连用的, 因为r...原创 2019-01-17 21:49:04 · 642 阅读 · 0 评论 -
线程-线程调用2
前言 上一节我们用模仿函数调用的方法来实现了线程调用, 不过都是用汇编实现的, 而本节就来写用c语言来调用. 线程调用 1. 全局变量 上节汇编中thread和current_thread都是被定义的全局变量, 使用全局变量是为了容易可以直接在汇编中调用. int thread[3] = {0}; // 定义3个线程 int current_thread = 0; // 保存当前运行的线程 2....原创 2019-01-17 21:50:07 · 516 阅读 · 1 评论
分享