开发者社区> 问答> 正文

从特定线程请求堆栈跟踪是否要求所有线程都处于安全点?

当通过js Thread#getStackTrace() 或
从另一个线程请求堆栈跟踪时js ThreadMXBean#getThreadInfo(long[], int) ,
是否所有线程都必须进入一个安全点并因此必须等到所有其他线程都已经进入一个安全点?

该博客似乎暗示情况是这样的:

无论是采样单个线程还是所有线程,您都达到了全局安全点(至少在OpenJDK上,Zing稍有不同,但是作为探查器供应商OpenJDK是您的假设。)

这意味着从单个线程获取堆栈跟踪与从所有线程获取跟踪一样具有侵入性(就高开销而言,由于全局安全点命中的频率增加)。

但是,对于OpenJDK而言,实际上/仍然如此吗?您是否有任何指向这的原因或相关的源代码?

展开
收起
垚tutu 2019-12-04 16:24:17 671 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
多IO线程优化版 立即下载
对象的生命期管理 立即下载
低代码开发师(初级)实战教程 立即下载

相关实验场景

更多