处于非执行状态的线程,例如 BLOCKED 、SLEEP 状态,无法响应虚拟机的中断请求,不能执行到安全点挂起,所以引入了安全区域。
不过处于这种状态的线程本身就不会导致引用关系发生改变吧?这个安全区域就是线程挂起时给虚拟机发个通知,线程恢复时检查枚举根节点是否结束,这样理解对吗?
书里说安全区域是一段代码,执行这段代码时引用关系不会发生变化,搞得我有点转不过来弯,已经挂起的线程还怎么执行到安全区域?让线程挂起的代码段就是安全区域的意思吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.