原创 java多線程(2) ----- 對象及變量的併發訪問(下)

(歡迎關注微信公衆號:深入Java底層)1.  synchronized對象監視器爲Class時的使用synchronized關鍵字加到static靜態方法上是給Class類上鎖,而synchronized關鍵字加到非static靜態方法

原创 Spring -----Spring中整合mybatis

1、在xml中定義MyBatis的配置文件,包括一些屬性信息。<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConf

原创 java多線程(4) ----- Lock的使用

(歡迎關注微信公衆號:深入Java底層)4.1使用ReentrantLock類調用ReentrantLock對象的lock()方法獲取鎖,調用unlock()方法釋放鎖,效果和使用synchronized關鍵字一樣。Object類中的wa

原创 java多線程(3) ----- 線程間通信

(歡迎關注微信公衆號:深入Java底層)3.1使用wait/notify實現線程間的通信wait()方法可以使調用該方法的線程釋放共享資源的鎖,然後從運行狀態退出,進入等待隊列,直到被再次喚醒;鎖被自動釋放;當線程呈wait()狀態時,調

原创 java多線程(5) ----- 定時器Timer

(歡迎關注微信公衆號:深入Java底層)在JDK庫中Timer類主要負責計劃任務的功能,也就是在指定的時間開始執行某一個任務。Timer類的主要作用就是設置計劃任務,但封裝任務的類卻是TimerTask類。執行計劃任務的代碼要放入Time

原创 java多線程(6) ----- 單例模式和多線程

(歡迎關注微信公衆號:深入Java底層)6.1立即加載/“餓漢模式”立即加載/“餓漢模式”就是使用類的時候已經將對象創建完畢,常見的實現辦法就是直接new實例化。6.2 延遲加載/“懶漢模式”延遲加載/“懶漢模式”就是在調用get()方法

原创 java多線程(1) ----- java多線程技能(下)

(歡迎關注微信公衆號:深入Java底層)1、停止線程1.1 停止不了的線程調用interrupt()方法僅僅是在當前線程中打了一個停止的標記,並不是真的停止線程。1.2 判斷線程是否是停止狀態this.interrupted():測試當前

原创 java多線程(1) ----- java多線程技能(上)

(歡迎關注公衆號:深入Java底層)1、實現多線程編程的方式主要有兩種,一種是繼承Thread類,另一種是實現Runnable接口。使用繼承Thread類的方式創建新線程時,最大的侷限性就是不支持多繼承,因爲Java語言的特點就是單根繼承

原创 java多線程(2) ----- synchronized對象監視器爲Object時的使用(上)

(歡迎關注微信公衆號:深入Java底層)synchronized同步方法/synchronized(this)同步代碼塊·同一時間只有一個線程可以執行synchronized同步方法/synchronized(this)同步代碼塊中的代碼