摘要:它對應(yīng)的實(shí)現(xiàn)是在中,原始代碼為這里是省略的方法體轉(zhuǎn)換后這里是省略的方法體附錄簡介
怎么看open jdk native的源碼
類的命名與java類的命名是一模一樣的
方法的命名為JNI的代碼風(fēng)格
一般關(guān)注下文件頭,如果是系統(tǒng)文件,比如
JVM_ENTRY本身是一個(gè)宏定義,位于interfaceSupport.hpp中
#define JVM_ENTRY(result_type, header) //宏定義,每個(gè)使用這個(gè)名字的地方,都會被宏的內(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方法。它對應(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 簡介
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/71592.html
摘要:作為條件變量的的不僅可以認(rèn)為內(nèi)嵌了一把鎖,還內(nèi)嵌了一個(gè)條件變量。操作條件變量的函數(shù)將當(dāng)前線程在條件變量上阻塞,一般是為了等待其他線程的某件事情執(zhí)行完成。其它裝箱類其它裝箱類的代碼這里就不分析了。重點(diǎn)關(guān)注下各裝箱類的緩存范圍。 jdk源碼讀到現(xiàn)在這里,重要的集合類也讀了一部分了。集合類再往下讀的話,就要涉及到兩個(gè)方向。第一,是比較典型的但是不常用的數(shù)據(jù)結(jié)構(gòu),這部分我準(zhǔn)備將數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)、回...
摘要:我想這很好的解釋了中,僅僅一個(gè)都這么復(fù)雜,在單線程或者說串行的程序中,編程往往是很簡單的,說白了就是調(diào)用,調(diào)用,調(diào)用然后返回。 Netty源碼分析(三) 前提概要 這次停更很久了,原因是中途迷茫了一段時(shí)間,不過最近調(diào)整過來了。不過有點(diǎn)要說下,前幾天和業(yè)內(nèi)某個(gè)大佬聊天,收獲很多,所以這篇博文和之前也會不太一樣,我們會先從如果是我自己去實(shí)現(xiàn)這個(gè)功能需要怎么做開始,然后去看netty源碼,與...
摘要:我們知道,發(fā)起函數(shù)調(diào)用,需要構(gòu)造一個(gè)棧幀。構(gòu)造棧幀的具體實(shí)現(xiàn)細(xì)節(jié)的選擇,被稱為調(diào)用慣例。要想完成這個(gè)函數(shù)調(diào)用邏輯,就要運(yùn)行時(shí)構(gòu)造棧幀,生成參數(shù)壓棧和清理堆棧的工作。目前,幾乎支持全部常見的架構(gòu)。 原文:http://nullwy.me/2018/01/java...如果覺得我的文章對你有用,請隨意贊賞 遇到的問題 前段時(shí)間開發(fā)的時(shí)候,遇到一個(gè)問題,就是如何用 Java 實(shí)現(xiàn) chdir...
摘要:而我們現(xiàn)在都已經(jīng)發(fā)布了,的都不知道,這有點(diǎn)說不過去了。而對一個(gè)的讀寫也會有響應(yīng)的描述符,稱為文件描述符,描述符就是一個(gè)數(shù)字,指向內(nèi)核中的一個(gè)結(jié)構(gòu)體文件路徑,數(shù)據(jù)區(qū)等一些屬性。 前言 只有光頭才能變強(qiáng) 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡單啦 本來我預(yù)想是先來回顧一下傳統(tǒng)的IO模式的,將傳統(tǒng)的IO模式的相關(guān)類理清楚(因?yàn)镮O的類很多)。 但是,發(fā)現(xiàn)在整理的過程已...
摘要:典型應(yīng)用鎖和同步器框架的核心類,就是通過調(diào)用和實(shí)現(xiàn)線程的阻塞和喚醒的,而的方法實(shí)際是調(diào)用的方式來實(shí)現(xiàn)。 前言 Unsafe是位于sun.misc包下的一個(gè)類,主要提供一些用于執(zhí)行低級別、不安全操作的方法,如直接訪問系統(tǒng)內(nèi)存資源、自主管理內(nèi)存資源等,這些方法在提升Java運(yùn)行效率、增強(qiáng)Java語言底層資源操作能力方面起到了很大的作用。但由于Unsafe類使Java語言擁有了類似C語言指針...
閱讀 1727·2019-08-30 12:51
閱讀 715·2019-08-29 17:30
閱讀 3774·2019-08-29 15:17
閱讀 893·2019-08-28 18:10
閱讀 1445·2019-08-26 17:08
閱讀 2230·2019-08-26 12:16
閱讀 3488·2019-08-26 11:47
閱讀 3551·2019-08-23 16:18