原创 Java併發(十一)----線程五種狀態與六種狀態

1、五種狀態 這是從 操作系統 層面來描述的 【初始狀態】僅是在語言層面創建了線程對象,還未與操作系統線程關聯 【可運行狀態】(就緒狀態)指該線程已經被創建(與操作系統線程關聯),可以由 CPU 調度執行 【運行狀態】指獲取了

原创 Java併發(八)----使用線程避免cpu佔用100%

1、sleep 實現 在沒有利用 cpu 來計算時,不要讓 while(true) 空轉浪費 cpu,這時可以使用 yield 或 sleep 來讓出 cpu 的使用權給其他程序 while(true) {    try {  

原创 Java併發(九)----線程join、interrupt

1、join 方法詳解 1.1 爲什麼需要 join? 下面的代碼執行,打印 r 是什麼? static int r = 0; public static void main(String[] args) throws Interrupte

原创 Java併發(七)----線程sleep、yield、線程優先級

1、sleep 與 yield sleep 調用 sleep 會讓當前線程從 Running 進入 Timed Waiting 狀態(阻塞) 其它線程可以使用 interrupt 方法打斷正在睡眠的線程,這時 sleep 方法會拋出

原创 Java併發(五)----線程常見方法總結

常見方法 方法名 static 功能說明 注意 start()   啓動一個新線程,在新的線程運行 run 方法中的代碼 start 方法只是讓線程進入就緒,裏面代碼不一定立刻運行(CPU 的時間片還沒分給它)。每個線程對象

原创 Java併發(四)----線程運行原理

1、線程運行原理 1.1 棧與棧幀   Java Virtual Machine Stacks (Java 虛擬機棧 JVM) 我們都知道 JVM 中由堆、棧、方法區所組成,其中棧內存是給誰用的呢?其實就是線程,每個線程啓動後,虛擬機就會爲

原创 Java併發(三)----創建線程的三種方式及查看進程線程

一、直接使用 Thread // 創建線程對象 Thread t = new Thread() {    public void run() {        // 要執行的任務   } }; // 啓動線程 t.start();

原创 Java併發(二)----初次使用多線程並行提高效率

1、並行 並行代表充分利用多核 cpu 的優勢,提高運行效率。 想象下面的場景,執行 3 個計算,最後將計算結果彙總。 計算 1 花費 10 ms ​ 計算 2 花費 11 ms ​ 計算 3 花費 9 ms ​ 彙總需要 1 ms 如

原创 Java併發(一)----進程、線程、並行、併發

一、進程與線程 進程 程序由指令和數據組成,但這些指令要運行,數據要讀寫,就必須將指令加載至 CPU,數據加載至內存。在指令運行過程中還需要用到磁盤、網絡等設備。進程就是用來加載指令、管理內存、管理 IO 的 當一個程序被運行,從磁

原创 設計模式(三十二)----綜合應用-自定義Spring框架-自定義Spring IOC-自定義Spring IOC總結

1 自定義Spring IOC總結 1.1 使用到的設計模式 工廠模式。這個使用工廠模式 + 配置文件的方式。 單例模式。Spring IOC管理的bean對象都是單例的,此處的單例不是通過構造器進行單例的控制的,而是spring框

原创 設計模式(三十一)----綜合應用-自定義Spring框架-自定義Spring IOC-定義解析器、IOC容器相關類

3 定義解析器相關類 3.1 BeanDefinitionReader接口 BeanDefinitionReader是用來解析配置文件並在註冊表中註冊bean的信息。定義了兩個規範: 獲取註冊表的功能,讓外界可以通過該對象獲取註冊表對象

原创 設計模式(三十)----綜合應用-自定義Spring框架-自定義Spring IOC-定義bean、註冊表相關類

現要對下面的配置文件進行解析,並自定義Spring框架的IOC對涉及到的對象進行管理。 <?xml version="1.0" encoding="UTF-8"?> <beans>    <bean id="userService" cl

原创 設計模式(二十九)----綜合應用-自定義Spring框架-Spring IOC相關接口分析

1 BeanFactory解析 Spring中Bean的創建是典型的工廠模式,這一系列的Bean工廠,即IoC容器,爲開發者管理對象之間的依賴關係提供了很多便利和基礎服務,在Spring中有許多IoC容器的實現供用戶選擇,其相互關係如下圖所

原创 設計模式(二十八)----綜合應用-自定義Spring框架-Spring簡單回顧

1 spring使用回顧 自定義spring框架前,先回顧一下spring框架的使用,從而分析spring的核心,並對核心功能進行模擬。 數據訪問層。定義UserDao接口及其子實現類 public interface UserDao

原创 設計模式(二十七)----行爲型模式之解釋器模式

1 概述 如上圖,設計一個軟件用來進行加減計算。我們第一想法就是使用工具類,提供對應的加法和減法的工具方法。 //用於兩個整數相加 public static int add(int a,int b){    return a + b;