成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

如何讀open jdk native 源碼

Anchorer / 1494人閱讀

摘要:它對(duì)應(yīng)的實(shí)現(xiàn)是在中,原始代碼為這里是省略的方法體轉(zhuǎn)換后這里是省略的方法體附錄簡(jiǎn)介

怎么看open jdk native的源碼

類(lèi)的命名與java類(lèi)的命名是一模一樣的

方法的命名為JNI的代碼風(fēng)格

一般關(guān)注下文件頭,如果是系統(tǒng)文件,比如 , 是搜不到源碼的,否則全局可以搜到對(duì)應(yīng)的命名

JVM_ENTRY等類(lèi)似這樣的字符是啥意思?

JVM_ENTRY本身是一個(gè)宏定義,位于interfaceSupport.hpp中

#define JVM_ENTRY(result_type, header)                                //宏定義,每個(gè)使用這個(gè)名字的地方,都會(huì)被宏的內(nèi)容所替代
extern "C" {                                                          //表示編譯器需要按照C的方式編譯
  result_type JNICALL header {                                       
    JavaThread* thread=JavaThread::thread_from_jni_environment(env); 
    ThreadInVMfromNative __tiv(thread);                              
    debug_only(VMNativeEntryWrapper __vew;)                          
    __ENTRY(result_type, header, thread)                              
extern "C" 解釋

宏定義

jvm_entry做了什么

例子

java中有一個(gè)AccessController.doPrivileged方法。它對(duì)應(yīng)的實(shí)現(xiàn)是在jvm.cpp中,原始代碼為

JVM_ENTRY(jobject, JVM_DoPrivileged(JNIEnv *env, jclass cls, jobject action, jobject context, jboolean wrapException))
              #這里是省略的方法體
JVM_END

轉(zhuǎn)換后

extern "C" {                                                          
  jobject JNICALL JVM_DoPrivileged(JNIEnv *env, jclass cls, jobject action, jobject context, jboolean wrapException) {                                       
    JavaThread* thread=JavaThread::thread_from_jni_environment(env); 
    ThreadInVMfromNative __tiv(thread);                              
    debug_only(VMNativeEntryWrapper __vew;)                          
    __ENTRY(result_type, header, thread) 
            #這里是省略的方法體                                                  
      
                }
           }
附錄

JNI 簡(jiǎn)介

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/71592.html

相關(guān)文章

  • 源碼|jdk源碼之Object及裝箱類(lèi)型分析

    摘要:作為條件變量的的不僅可以認(rèn)為內(nèi)嵌了一把鎖,還內(nèi)嵌了一個(gè)條件變量。操作條件變量的函數(shù)將當(dāng)前線程在條件變量上阻塞,一般是為了等待其他線程的某件事情執(zhí)行完成。其它裝箱類(lèi)其它裝箱類(lèi)的代碼這里就不分析了。重點(diǎn)關(guān)注下各裝箱類(lèi)的緩存范圍。 jdk源碼讀到現(xiàn)在這里,重要的集合類(lèi)也讀了一部分了。集合類(lèi)再往下讀的話,就要涉及到兩個(gè)方向。第一,是比較典型的但是不常用的數(shù)據(jù)結(jié)構(gòu),這部分我準(zhǔn)備將數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)、回...

    VioletJack 評(píng)論0 收藏0
  • 【自己源碼】Netty4.X系列(三) Channel Register

    摘要:我想這很好的解釋了中,僅僅一個(gè)都這么復(fù)雜,在單線程或者說(shuō)串行的程序中,編程往往是很簡(jiǎn)單的,說(shuō)白了就是調(diào)用,調(diào)用,調(diào)用然后返回。 Netty源碼分析(三) 前提概要 這次停更很久了,原因是中途迷茫了一段時(shí)間,不過(guò)最近調(diào)整過(guò)來(lái)了。不過(guò)有點(diǎn)要說(shuō)下,前幾天和業(yè)內(nèi)某個(gè)大佬聊天,收獲很多,所以這篇博文和之前也會(huì)不太一樣,我們會(huì)先從如果是我自己去實(shí)現(xiàn)這個(gè)功能需要怎么做開(kāi)始,然后去看netty源碼,與...

    darkbug 評(píng)論0 收藏0
  • Java 外部函數(shù)接口:JNI, JNA, JNR

    摘要:我們知道,發(fā)起函數(shù)調(diào)用,需要構(gòu)造一個(gè)棧幀。構(gòu)造棧幀的具體實(shí)現(xiàn)細(xì)節(jié)的選擇,被稱(chēng)為調(diào)用慣例。要想完成這個(gè)函數(shù)調(diào)用邏輯,就要運(yùn)行時(shí)構(gòu)造棧幀,生成參數(shù)壓棧和清理堆棧的工作。目前,幾乎支持全部常見(jiàn)的架構(gòu)。 原文:http://nullwy.me/2018/01/java...如果覺(jué)得我的文章對(duì)你有用,請(qǐng)隨意贊賞 遇到的問(wèn)題 前段時(shí)間開(kāi)發(fā)的時(shí)候,遇到一個(gè)問(wèn)題,就是如何用 Java 實(shí)現(xiàn) chdir...

    pubdreamcc 評(píng)論0 收藏0
  • JDK10都發(fā)布了,nio你了解多少?

    摘要:而我們現(xiàn)在都已經(jīng)發(fā)布了,的都不知道,這有點(diǎn)說(shuō)不過(guò)去了。而對(duì)一個(gè)的讀寫(xiě)也會(huì)有響應(yīng)的描述符,稱(chēng)為文件描述符,描述符就是一個(gè)數(shù)字,指向內(nèi)核中的一個(gè)結(jié)構(gòu)體文件路徑,數(shù)據(jù)區(qū)等一些屬性。 前言 只有光頭才能變強(qiáng) 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡(jiǎn)單啦 本來(lái)我預(yù)想是先來(lái)回顧一下傳統(tǒng)的IO模式的,將傳統(tǒng)的IO模式的相關(guān)類(lèi)理清楚(因?yàn)镮O的類(lèi)很多)。 但是,發(fā)現(xiàn)在整理的過(guò)程已...

    YFan 評(píng)論0 收藏0
  • Java魔法類(lèi)——Unsafe應(yīng)用解析

    摘要:典型應(yīng)用鎖和同步器框架的核心類(lèi),就是通過(guò)調(diào)用和實(shí)現(xiàn)線程的阻塞和喚醒的,而的方法實(shí)際是調(diào)用的方式來(lái)實(shí)現(xiàn)。 前言 Unsafe是位于sun.misc包下的一個(gè)類(lèi),主要提供一些用于執(zhí)行低級(jí)別、不安全操作的方法,如直接訪問(wèn)系統(tǒng)內(nèi)存資源、自主管理內(nèi)存資源等,這些方法在提升Java運(yùn)行效率、增強(qiáng)Java語(yǔ)言底層資源操作能力方面起到了很大的作用。但由于Unsafe類(lèi)使Java語(yǔ)言擁有了類(lèi)似C語(yǔ)言指針...

    reclay 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

Anchorer

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<