当前位置: 首页 > news >正文

网站建设的论坛西安网站建设兼职

网站建设的论坛,西安网站建设兼职,做兼职比较好的网站,海淀网站建设电话有四个函数A、B、C、D#xff0c;地址分别为100、200、300、400#xff1b;有两个线程同时执行#xff1b; 1#xff09;假如只有一个栈 函数A在线程1中执行的时候#xff0c;调用了函数B#xff0c;将函数A中下一条指令的地址入栈#xff08;104#xff09;#xff…有四个函数A、B、C、D地址分别为100、200、300、400有两个线程同时执行 1假如只有一个栈 函数A在线程1中执行的时候调用了函数B将函数A中下一条指令的地址入栈104然后执行函数B函数B中又执行了Yield()函数蓝色Yield()的作用可以理解为切换线程Yield()切换到地址300处的线程执行线程2同时将下一条指令的地址入栈204接下来执行函数C同样道理调用方法D304入栈最后执行函数DYield() 会跳到地址204继续执行204紧接着函数B执行完会返回返回地址是栈顶的值(404)这里的返回地址本应该是104 因此多个线程共用一个栈就会出现问题 2每个线程一个栈 再切换线程时同时也要切换栈这里就需要一个数据结构TCB(Thread control block)来存储栈的指针每个线程都有一个TCB。 线程2中的Yield()函数应该改写成如下格式 void Yield(){TCB2.espesp; espTCB1.esp;jmp 204; }Yield(){TCB2.espesp; espTCB1.esp;jmp 204; } 执行过程 在A函数中调用B将地址104入栈(esp1000)在函数B中执行Yield()保存当前栈指针TCB1.esp esp同时切换栈指针espTCB2.esp将地址204入栈跳转到函数C(esp1000)在函数C中调用函数D将地址304入栈esp2000函数D执行Yield()保存栈指针切换栈指针将地址404入栈跳转到函数B继续执行地址204处的代码执行完毕执行 } 弹出线程1栈的栈顶地址204发现此处重复执行地址204处的指令 3最终 线程2的Yield() void Yield(){TCB2.espesp; espTCB1.esp; } 这样在2中第四步执行时不再使用jmp 204跳转而是执行 } 将线程1中的栈顶地址出栈。
http://www.zqtcl.cn/news/273718/

相关文章:

  • 12306网站是是阿里巴巴做的吗专业建网站设计公司
  • 关于申请网站建设经费的请示网推推荐信
  • 网站建设请款报告网站服务器租用价格
  • 贵州建设网老网站手机网站建设运营方案
  • 网站方案范文唐山自助建站模板
  • 金华网站制作网站建设的功能需求
  • 用iis建立网站口碑营销案例分析
  • 注册网站要求线上设计师与线下设计师的区别
  • 个人备案 网站内容网站备案如何查询
  • 宿州科技网站建设百度网站外链发布平台
  • 织梦移动网站wordpress父文章显示不全
  • 游戏攻略网站怎么做网站开发需求确认书
  • 做高大上分析的网站电商到底干嘛的
  • 物流网站哪个好网络推广就找南昌莫非传媒
  • 查看网站空间企业网站管理系统介绍
  • 重庆市工程建设信息网新网站艺术品商城网站开发
  • 上海网站制作商wordpress改主题
  • 钰鸣厦门网站建设2023热点新闻事件
  • 网络营销的主要形式有建设网站免费搭建网站哪个好
  • 建一个网站需要哪些人aso是什么意思
  • 电商网站有哪些淘宝运营培训班哪里有
  • 网站开发网站制作太原优化排名推广
  • 佛山市网站开发桥西区建设局网站
  • 怎么制作网站应用云主机上传wordpress
  • flash网站代做马鞍山网站建设制作公司
  • 温州网站的优化wordpress 注册邮箱验证失败
  • php网站开发实例视频教程宁波seo运营推广平台排名
  • 网络营销网站开发设计公司网站推广营销
  • 2015年做那个网站致富wordpress最新模板
  • 做网站开发平台北京广告公司有哪些