原创 Java8引入的一種新的鎖機制——StampedLock

StampedLock StampedLock是Java8引入的一種新的鎖機制,簡單的理解,可以認爲它是讀寫 鎖的一個改進版本,讀寫鎖雖然分離了讀和寫的功能,使得讀與讀之間可以完全並 發,但是讀和寫之間依然是衝突的,讀鎖會完全阻塞

原创 Java使用wkhtmltopdf工具 將html 導出PDF

1.安裝wkhtmltopdf 官網地址:https://wkhtmltopdf.org/ 根據自己的系統來選擇對應的安裝包 2.下載之後安裝,然後將其配置到環境變量中 3.測試一下 命令:wkhtmltopdf 需要轉化爲p

原创 JAVA 內存模型(java memory model) JMM和底層實現原理

文章目錄JMM基礎-計算機原理如果從內存中讀取 1M 的 int 型數據由 CPU 進行累加,耗時要多久?物理內存模型帶來的問題僞共享Java內存模型(JMM)Java內存模型帶來的問題可見性問題競爭問題重排序重排序類型數據依賴性

原创 實現一個多線程可查詢進度的併發任務執行框架

需求的產生和分析 假如有兩個項目組,考試組有批量的離線文檔要生成,題庫組則經常有批量的題目進行排重和根據條件批量修改題目的內容。 架構組通過對實際的上線產品進行用戶調查,發現這些功能在實際使用時, 用戶都反應速度很慢,而且提交任務

原创 項目中 Entity、VO、DTO的認識和應用

這個對象的區別曾經真是困擾了我好久,在這裏分享下,希望能夠給大家帶來幫助 項目中關於Entity、VO、DTO的認識和應用、 entity 裏的每一個字段,與數據庫相對應, vo 裏的每一個字段,是和你前臺 html 頁面

原创 設計模式 --- 簡單工廠模式

定義 定義一個工廠類,他可以根據參數的不同返回不同類的實例,被創建的實例通常都具有共同的父類 在簡單工廠模式中用於被創建實例的方法通常爲靜態(static)方法,因此簡單工廠模式又被成爲靜態工廠方法(Static Factory

原创 JAVA併發編程 併發容器 線程池 Executor 使用以及深入瞭解

線程池 爲什麼要用線程池? Java 中的線程池是運用場景最多的併發框架,幾乎所有需要異步或併發執行 任務的程序都可以使用線程池。在開發過程中,合理地使用線程池能夠帶來 3 個好處。 第一:降低資源消耗。通過重複利用已創建的線程

原创 配置Maven環境 settiing.xml

一.配置Maven環境 1.下載apache-maven文件,選擇自己需要的版本, 2.解壓1所下載文件,本人解壓到:D:\server\maven\apache-maven-3.5.0 3.配置Maven環境變量 a. MAVEN_HO

原创 AQS實現一個簡單的FutureTask FutureTask的get方法實現

FutureTask的get方法實現: 1、允許多個線程get這個結果 2、多個線程get這個結果時,可能任務還沒運行完。 3、任務運行完成後才能拿到結果,而且這個時候要讓get結果的多個線程都可以拿到結果 /** * Futu

原创 線程中yield()、sleep()、wait()、notify()對鎖有何影響?

1.yield() yield()方法僅僅只是讓出cpu的執行權,並不會將鎖讓出 2.sleep() sleep()方法也不會將鎖讓出,當我們的線程休眠後,必須等待線程休眠過後,其他線程纔可以拿到鎖 3.wait() wait(

原创 線程的併發工具類 ---CountDownLatch的作用、應用場景和實戰

CountDownLatch 中文名:閉鎖,CountDownLatch 這個類能夠使一個線程等待其他線程完成各自的工 作後再執行。例如,應用程序的主線程希望在負責啓動框架服務的線程已經啓動 所有的框架服務之後再執行。  CountDo

原创 Java原子操作類 AtomicInteger的用法

1、AtomicInteger基本介紹 java.util.concurrent.atomic 的包AtomicBoolean,AtomicInteger,AtomicLong,AtomicLongArray,AtomicReferen

原创 生產者消費者模式思想 阻塞隊列 DelayQueue 模擬訂單過期功能

DelayQueue 是一個支持延時獲取元素的無界阻塞隊列。隊列使用 PriorityQueue 來實現。 隊列中的元素必須實現 Delayed接口,在創建元素時可以指定多久才能從隊列中 獲取當前元素。只有在延遲期滿時才能從隊列

原创 JAVA併發編程 併發容器 HashTable 簡單介紹以及常見的併發容器面試題

HashTable HashTable 容器使用 synchronized 來保證線程安全,但在線程競爭激烈的情況下 HashTable 的效率非常低下。因爲當一個線程訪問 HashTable 的同步方法, 其他線程也訪問 Ha