上回打手(线程)由于第一关卡中的三个里屋都被其他打手占用,所以在那等呀等~等呀等,便睡了过去。多高之线程篇,点这里去学一下线程呗
小胡和敏小言:停,你别先给我嘚吧嘚嘚吧嘚唧唧歪歪,你先给我把进程的官方定义和你的私方解释拿出来,我看一下干活
那就先上菜。
胡&敏:是个这呀,大概有点感觉了,上次你说那个打手闯第一关的过程我大概清楚,今天这个进程是不是也有什么调度呀啥的。
对头,肯定有,上菜。(在此处还得感谢很多公众号里面的前辈,不管怎样,里面很多知识的学习和这些前辈都是密不可分的,可能正在阅读的您的文章就是我学习过的资料,特在此感谢三联,感谢各位前辈)
void schedule(void) { int next = get_max_counter_from_runnable(); refresh_all_thread_counter(); switch_to(next); }
老规矩,买一赠一,下面就是进程切换过程中,用来存货的柜台。
struct task_struct{ long state; long counter; long priority; struct tss_struct tss; }
胡&敏:还可以哈,那就说明进程切换时用柜台存人家原来还没被执行完的任务的东西,等新的任务执行完在去柜台取回来继续执行。
胡&敏:那是不是切换后人家进程自己衣服口袋里装的是正在执行的应用程序的信息,把之前的被打断的任务存在了柜台,等把现在这个口袋里面的用完之后再切换回去时就会去柜台取原来的东西。
yes,伊特伊兹。
胡&敏:那我想,线程和进程应该都存在切换这个动作呀,原来任务的被打断,咱们肯定不能凭空把人家原来的任务的一些信息给白白扔了,得找个地方呀、柜台呀给存起来,让新任务进来进行执行,执行完了在找回原来任务的信息接着执行。大概意思明白了。
胡&敏:哦,那是不是和“中断”有关呀,我记得之前学过…
stop停,你话太多了,别说了,咱们还是回到进程吧。
上,常考点,进程的五个状态:
胡&敏:你这动不动就把锅甩给人家其他书了,你这也不行呀。
啧啧啧,算了,给你个赠品,补偿你一下
拜拜…
胡&敏:你这…
author:下期带你进入真正的多高(多线程与高并发),正的多高,的多高,多高,高…(一直荡漾着边跑跑喊的阵阵回声)