原创 第五章 線程間協作--《java多線程編程實戰指南-核心篇》

5.1 等待與通知:wait/notify wait()的作用是使其執行線程被暫停,該方法可以用來實現等待;notify()的作用是喚醒一個被暫停的線程,調用該方法可實現通知。 由於一個線程只有在持有一個對象的內部鎖的情況下才能調用該對象

原创 第六章 保障線程安全的設計技術--《java多線程編程實戰指南-核心篇》

棧空間是爲線程的執行而準備的一段固定大小的內存空間,每個線程都由其棧空間。棧空間實在線程創建的時候分配的。線程執行一個方法前,java虛擬機會在該線程的棧空間中爲這個方法調用創建一個棧幀。棧幀用於存儲相應方法的局部變量、返回值等私有數據。

原创 第三章 java線程同步機制 《java多線程編程實戰指南-核心篇》

3.1 線程同步機制簡介 線程同步機制是一套用於協調線程間的數據訪問及活動的機制,該機制用於保障線程安全以及實現這些線程的共同目標。 線程同步機制包括鎖、volatile關鍵字、final關鍵字、static關鍵字以及相關API。 3.2

原创 第九章 java異步編程--《java多線程編程實戰指南-核心篇》

java.util.concurrent.Executor接口是對任務執行進行的抽象,Executor接口使得任務的提交方只需要知道它調用Executor.execute方法便可以使指定任務被執行,無需關係任務執行的細節,使得任務的提交能

原创 第二章 多線程編程的目標與挑戰--《java多線程編程實戰指南》

2.1 串行、併發與並行 併發就是在一段時間內以交替的方式去完成多個任務,而並行就是以齊頭並進的方式去完成多個任務。 從硬件的角度來說,在一個處理器一次只能夠運行一個線程的情況下,由於處理器可以使用時間片分配的技術來實現在同一段時間內運行

原创 第10章 早期(編譯期優化) 《深入理解java虛擬機》

javac編譯器 編譯期:1.前端編譯器(javac、ECJ)把*.java文件編譯成*.class文件的過程;2.後端運行期編譯器(JIT編譯器:C1、C2)把字節碼編譯成機器碼的過程;3.靜態提前編譯器(AOT編譯器:GCJ、Exce

原创 第十一章 晚期(運行期)優化 《深入理解java虛擬機》

當虛擬機發現某個方法或代碼塊的運行特別頻繁時,就會把這些代碼認定爲熱點代碼。在運行時,虛擬機將會把這些代碼編譯成本地平臺相關機器碼,並進行各種層次的優化,完成這個任務的編譯器稱爲即時編譯器(JIT編譯器) 解釋器(Interperter)

原创 第八章 虛擬機字節碼執行引擎 《深入理解java虛擬機》

運行時棧幀結構 棧幀是用於支持虛擬機進行方法調用和方法執行的數據結構,它是虛擬機運行時數據區中的虛擬機棧的棧元素。棧幀存儲了方法的局部變量表、操作數棧、動態連接和方法返回地址等信息。每一個方法從調用開始至完成的過程,都對應着一個棧幀在虛擬

原创 第七章 虛擬機類加載機制 《深入理解java虛擬機》

虛擬機的類加載機制:虛擬機把描述類的數據從Class文件加載到內存,並對數據進行校驗、轉換解析和初始化,最終形成可以被虛擬機直接使用的java類型。 類型的加載、連接和初始化過程都是在程序運行期間完成的。 類加載的時機 類從被加載到最後被

原创 Linux下Centos7對外開放端口

原文鏈接:https://blog.csdn.net/realjh/article/details/82048492 (1)查看對外開放的端口狀態 查詢已開放的端口 netstat -anp 查

原创 java -verbose命令

原文鏈接:https://blog.csdn.net/liuxiao723846/article/details/72811678 java -verbose[:class|gc|jni] 在輸