问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么线程调度要用到堆栈

发布网友 发布时间:2022-05-13 03:48

我来回答

1个回答

热心网友 时间:2023-08-02 21:38

我们知道,每一个线程都独立拥有一个栈,多个线程可以“同时”执行。CPU执行程序代码完全依靠各种寄存器。当一个线程将被挂起时,当前的各种寄存器的数值就被存储在了线程的栈中。当CPU重新执行此线程时,将从栈中取出寄存器的数值,接着运行,好像这个线程从来就没有被打断过一样。正是因为每个线程都有一个独立的栈,使线程拥有了可以“闭门造车”的能力。只要将参数传递给线程的栈,CPU将担负起这块内存存储区的管理工作,并适时地执行线程函数代码对其进行操作。当系统在多个线程间切换时,CPU将执行相同的代码操作不同的栈。
下面举一个例子来加深理解。
随着面向对象编程方法的普及,我们很乐意将任何操作都包装成为一个类。线程函数也不例外,以静态函数的形式将线程函数放在类中是C++编程普遍使用的一种方法。通常情况下对象包括属性(类变量)与方法(类函数)。属性指明对象自身的性质,方法用于操作对象,改变它的属性。现在有一个小问题要注意了。类的静态函数只能访问类的静态变量,而静态变量是不属于单个对象的,他存放在进程的全局数据存储区。一般情况下,我们希望每个对象能够“独立”,也就是说,多个对象能够各自干各自的工作,不要相互打扰。如果以通常的方法,以类(静态)变量存储对象的属性,可就要出问题了,因为类(静态)变量不属于单个对象。现在怎么办呢?如何继续保持每个对象的“独立性”。解决的方法就是使用栈,将参数传递给线程函数的局部变量(栈存储区),以单个对象管理每个线程,问题就解决了。当然了,解决方法是多种多样的,这里只是为了进一步解释多线程与对象的关系。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 如何分析线程堆栈 进程线程与栈,堆的关系 御龙在天登录游戏后,每隔5分钟掉线,遇到未知错误,重新安装后,还是老问题,腾讯客服只会敷衍,全吃屎的 怎么知道当前线程用了多少堆栈 求javascript注册页面的生日正则表达式 青岛民办幼儿园法人变更 javascript 中如何用正则表达式 获取当前页面的所有css样式标签,所有javascript标签。 在oracle数据库中为什么char类型的9会比10大?是因为位置的关联,还是取MAX的时候只取的一位? 为什么oracle数据库中char数据类型最大取值为2000 怎样消除空调滴水声 小手指往后用力折了怎么办,很痛好像骨折 空调制热滴水怎么解决 我的手指折到了? 空调结露滴水怎样消除 手指折(zhe )了一下,没骨折但是很疼,怎么治疗? 电脑主机后面红绿蓝三个插孔,红和绿插耳机,蓝的插音响为什么没声音? 电脑机箱后面的插孔听不到声音,前面的插孔听得到声音的话,怎样能让机箱后面插孔听得到声音呢? 怎样预防QQ号被盗? 怎样防止自己的QQ号被盗 没有银行卡怎么绑定微信银行卡 JVM:如何分析线程堆栈 线程池会吃掉堆栈,能不能想办法,在异氖焙打印出 提交任务的线程的堆 c# 当前线程处于堆栈溢出状态,因此无法计算表达式的值。 Java中某一特定线程的具体任务在哪个方法中执行? 当出现死锁的时候,线程的堆栈如何?各线程处于何种状态? 检验士非统招可以报名吗 检验士什么时候报名 求一篇《这就是我》的作文 我是男生哦 这就是我 作文500字男生 这就是我 初中作文400字 男 这就是我500字的初中作文要男孩的!!! 这就是我作文800以上 PHP用正则表达式做注册页面 word的表格怎样制作斜线表头 华为yes是什么意思呢? 如何查看电脑office激活情况 能恢复一年前误删的照片吗,保存过在相册 小米手机 找回来的话400块钱 有人知道小米手机怎么恢复删除的照片吗,我攒了一年多的照片全部误删了,跪求,我的手机系统是MIUI7 小米手机以前的照片删除了怎么还能看到? 密码判断的正则表达式写在html的哪个位置