码迷,mamicode.com
首页 > 编程语言 > 详细

GC笔记--Native线程

时间:2017-03-22 12:48:16      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:nbsp   native   access   --   ati   java   成功   reg   笔记   

Native线程不能直接Access对象的引用,因此整个native线程是GC安全区域(GC safe region),GC发生时native线程可以继续执行。

但是,一旦Native线程调用VM接口,Native线程就需要切换状态,切换成非GC安全。

比如调用Java的JNI接口,Native线程首先尝试切换成Runable态。切换时,检查是否已发生GC。如果已经在GC,等待GC完成;如果没有GC,成功切换为Runable态,阻塞GC的进行。

当调用结束时,Native线程从Runable态切换回Native态,回到GC安全点。

 

所以Native线程(非VM接口调用状态),不响应GC,不被GC阻塞。

NatIve线程进入VM接口调用,则与GC互相阻塞。

GC笔记--Native线程

标签:nbsp   native   access   --   ati   java   成功   reg   笔记   

原文地址:http://www.cnblogs.com/simpleminds/p/6598983.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!