请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

咚咚呛老师,对于栈堆和线程的条件变量问题疑惑?

  1. 在内存的栈区、堆区中,栈区中储存的信息是变量名与地址的哈希结构,地址是指向堆区内存的,但在栈区的顶层栈帧的全局变量名与地址的哈希结构中,顶层栈帧中的地址指向已初始化全局变量的数据区,这样理解是对的么?
  • 图片描述
  1. 对于条件变量可以设置线程休眠,达到条件变量要求后唤醒的过程中,其中线程休眠是一直在原地等待占用线程资源,还是储存此时线程栈信息,然后线程执行切换的其他任务,在等到线程唤醒时,再装入线程栈信息继续执行线程休眠时的任务,是前面还是后面的执行逻辑呀?
  2. 对于代码中的 sleep(1)代表线程休眠1s,此时的线程休眠时,线程是切换到其他任务,还是一直在原地等待呀?

正在回答

1回答

哈哈,这么多同学提问,还是要数你的提问内容最丰富的了。

  1. 栈帧可以存储变量名和地址映射,但并不是所有的数据都存储在堆区或常量区,对于局部变量还是存储在栈区,所以栈帧中的变量名(此时更应该称为地址)可以指向栈区、堆区和常量区。

  2. 线程休眠,系统会调度其他运行线程使用资源,休眠资源让出CPU。当线程被唤醒后,执行后面的逻辑。

  3. 会切换。

0 回复 有任何疑惑可以回复我~
  • 提问者 无敌一砖拍 #1
    上课之前一直也积压很多疑惑,感谢老师的解惑!
    回复 有任何疑惑可以回复我~ 2019-09-05 13:07:15
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信