惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
V
V2EX
量子位
Last Week in AI
Last Week in AI
Jina AI
Jina AI
博客园 - 【当耐特】
爱范儿
爱范儿
宝玉的分享
宝玉的分享
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
博客园 - 三生石上(FineUI控件)
有赞技术团队
有赞技术团队
小众软件
小众软件
IT之家
IT之家
博客园_首页
博客园 - 聂微东
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
博客园 - 叶小钗

博客园 - 那只狐狸

神奇的Task.WaitALl Redis的淘汰策略 压测工具k6 C#的Lock可以锁什么? SqlServer高性能批量插入 二叉树 二叉搜索树 AVL树 红黑树 关于GC 线上bug线下很难重现时的一次处理 自动化测试和联调的工具---apifox 事务管理思考 sleep、yield、wait的区别 线程异常 线程 JAVA线程中断 volatile synchronized在线程安全上的区别 jms amqp activemq rabbitmq的区别 servlet不是线程安全的 雪花算法 mysql在海量数据时的处理方案
线程与GC
那只狐狸 · 2022-11-20 · via 博客园 - 那只狐狸

托管线程在GC期间 从是否可以访问托管堆上的对象来说有两种模式

1.抢占模式,,不可以访问托管堆上的对象

2.合作模式,,可以自由访问托管堆上的对象

托管线程在GC期间会有两种模式的切换:

1.主动切换,,比如托管线程调用了非托管代码 那么在GC没有完成前 不能返回和访问托管堆(非托管代码可以访问非托管资源)

2.被动切换,,比如托管线程根据CLR生成的元数据中的GC安全点信息,中断托管线程的执行 切换到抢占模式(使用返回地址劫持的系统函数 或者发送信号的方式),GC完成之后再恢复托管线程到合作模式