如何读jdk源码以及查找linux本地方法,例如DefaultSelectorProvider

85 篇文章 1 订阅

下载openjdk源码

openjdk GitHub源码 https://github.com/openjdk/jdk8
在这里插入图片描述

ctrl+N 搜索class,如下得到3个类,选择solaris linux版本进入

在这里插入图片描述

进入DefaultSelectorProvider

可以看到create()方法中Linux系统调用的是EPollSelectorProvider
在这里插入图片描述

ctrl+N 搜索EPollSelectorProvider

进入可以看到如下new了EPollSelectorImpl 实现类
在这里插入图片描述

进入EPollSelectorImpl

看到如下构造函数,可以看到构造方法new了EPollArrayWrapper对象,查看此对象
在这里插入图片描述

进入EPollArrayWrapper

EPollArrayWrapper构造方法调用了epollCreate
在这里插入图片描述

定位到epollCreate,发现是native方法

native为linux底层方法,C语言开发的
在这里插入图片描述

查找native方法,Ctrl+Shift+R,用类名_epoll

在这里插入图片描述

可以看到是.c结尾的文件,为C语言

到这里epoll_create已经跟踪不了了,因为它是linux内核函数
在这里插入图片描述

进入linux系统,查看linux手册

1, 安裝man

yum install man-pages

2,查找方法man xxx

man epoll_create

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值