您当前的位置: 首页 >  Java

java持续实践

暂无认证

  • 1浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java多线程 interrupt()方法源码分析&&分析Java的native代码

java持续实践 发布时间:2020-08-28 20:44:01 ,浏览量:1

文章目录
      • interrupt()源码分析
      • 分析native代码的方法

interrupt()源码分析

根据源码 , 可以看到 interrupt()源码的核心为interrupt0()方法 可以看到其interrupt()方法为native方法

分析native代码的方法

如下的链接为openjdk的源码地址 https://github.com/openjdk-mirror/jdk7u-jdk

点击此处的go to file可以查找对应的类

此次分析的是Thread类的代码, 因此是查找Thread.c 根据如下的Thread.c的源码, 可以看到interrupt0对应的是JVM_Interrupt {"interrupt0", "()V", (void *)&JVM_Interrupt}, 接着在如下的hotspot的源代码仓库中, 搜索JVM_Interrupt https://github.com/openjdk-mirror/jdk7u-hotspot

根据搜索出来的结果, 打开jvm.cpp 可以看到调用的是Thread::interrupt(thr);这个方法 根据thread.cpp的代码, 可以看到其调用的是os::interrupt 去中断线程 os::interrupt 的代码截取如下. 图片右侧为对于加粗的关键代码的解读

关注
打赏
1658054974
查看更多评论
立即登录/注册

微信扫码登录

0.0448s