問題 targetProject路徑不存在 描述 配置的targetProject=supermarket-common/src/main/java在運(yùn)行時(shí)錯(cuò)誤:[WARNI...
問題 targetProject路徑不存在 描述 配置的targetProject=supermarket-common/src/main/java在運(yùn)行時(shí)錯(cuò)誤:[WARNI...
Java NIO 始于Java 1.4,提供了新的Java IO操作非阻塞APi。 用意是替代Java IO 和 Java Networking相關(guān)的API。 NIO中有三個(gè)...
BIO - 阻塞IO的含義 阻塞(blocking) IO: 資源不可用時(shí),IO請求一直阻塞,直到反饋結(jié)果(有數(shù)據(jù)或超時(shí))。 非阻塞(non-blocking) IO: 資源...
OSI網(wǎng)絡(luò)七層模型 分成七層的目的就是為了讓每一層的開發(fā)人員或者說系統(tǒng)設(shè)計(jì)硬件也好軟件也好不需要去關(guān)心整個(gè)網(wǎng)絡(luò)層次 各層的主要功能 物理層:物理設(shè)備之間如何傳遞數(shù)據(jù),比較原始...
HashMap HashMap 雖然Hashtable是一個(gè)線程安全的類,但性能不高,在高并發(fā)的場景下使用ConcurrentHashMap ConcuttentHashMa...
Semaphore 又稱“信號(hào)量”,控制多個(gè)線程爭搶許可。 acquire: 獲取一個(gè)許可,如果沒有就等待。 release: 釋放一個(gè)許可。 availablePermit...
什么是AQS AQS(AbstractQueuedSynchronizer),AQS是JDK下提供的一套用于實(shí)現(xiàn)基于FIFO等待隊(duì)列的阻塞鎖和相關(guān)的同步器的一個(gè)同步框架。這個(gè)...
Lock的核心API 方法描述lock獲取鎖的方法,若鎖被其他線程獲取,則等待(阻塞)lockInterruptibly在鎖的獲取過程中可以中斷當(dāng)前線程tryLock嘗試非阻...
Java中鎖的概念 自旋鎖:為了不放棄CPU執(zhí)行事件,循環(huán)的使用CAS技術(shù)對數(shù)據(jù)嘗試進(jìn)行更新,直至成功。 悲觀鎖:假定會(huì)發(fā)生并發(fā)沖突,同步所有對數(shù)據(jù)的相關(guān)操作,從讀數(shù)據(jù)就開始...
競態(tài)條件與臨界區(qū) 多個(gè)線程訪問了相同的資源,向這些資源做了寫操作時(shí),對執(zhí)行順序有要求。 臨界區(qū): incr 方法內(nèi)部就是臨界區(qū)域,關(guān)鍵部分代碼的多線程并發(fā)執(zhí)行,會(huì)對執(zhí)行結(jié)果產(chǎn)...
多線程中的問題 所見非所得 無法內(nèi)眼去檢查程序的準(zhǔn)確性 不同的運(yùn)行平臺(tái)有不同的表現(xiàn) 錯(cuò)誤很難重現(xiàn) 工作內(nèi)存緩存 內(nèi)存模型的含義 內(nèi)存模型描述程序的可能行為。 Java編程語言...
為什么要用線程池 線程不是越多越好? 線程在Java中是一個(gè)對象,更是操作系統(tǒng)的資源,線程創(chuàng)建、銷毀需要時(shí)間。如果創(chuàng)建時(shí)間+銷毀時(shí)間> 執(zhí)行任務(wù)時(shí)間就很不合算。 Java對象...
線程封閉概念 多線程訪問共享可變數(shù)據(jù)時(shí),涉及到線程間數(shù)據(jù)同步的問題。并不是所有時(shí)候,都要用到共享數(shù)據(jù),所以線程封閉概念就提出來了。 數(shù)據(jù)都被封閉在各自的線程之中,就不需要同步...
通信的方式 要想實(shí)現(xiàn)多個(gè)線程之間的協(xié)同,如:線程執(zhí)行先后順序、獲取某個(gè)線程執(zhí)行的結(jié)果等等。涉及到線程之間相互通信,分為下面四類: 文件共享 網(wǎng)絡(luò)共享 共享變量 jdk提供的線...
CPU緩存 由于CPU的運(yùn)算速度高出CPU和內(nèi)存之間的數(shù)據(jù)傳輸速度一個(gè)級(jí)別,CPU廠商為了盡可能的利用CPU的性能,在CPU和內(nèi)存之間添加了高速緩存,盡可能地避免處理器訪問主...
不正確的線程中止--Stop Stop: 中止線程,并且清除監(jiān)控鎖的信息,但是可能導(dǎo)致線程安全問題,JDK不建議使用。 Destroy: JDK未實(shí)現(xiàn)該方法。 理想輸出:i ...
6個(gè)狀態(tài)的定義:java.lang.Thread.State New: 尚未啟動(dòng)的線程的線程狀態(tài)。 Runnable: 可運(yùn)行線程的線程狀態(tài),等待CPU的調(diào)度。 Blocke...
首先需要了解JVM運(yùn)行時(shí)數(shù)據(jù)區(qū),里面分 線程共享區(qū)域:所有線程能訪問這塊內(nèi)存數(shù)據(jù),隨虛擬機(jī)或GC而創(chuàng)建或銷毀。方法區(qū):JVM用來存儲(chǔ)加載的類信息、靜態(tài)變量、常量和編譯后的代碼...