原创 AbstractQueuedSynchronizer從設計到實現

概念導入        在併發編程中一個很重要的概念就是鎖,本文以java中對鎖的實現爲例子做一個分析。我們使用鎖的場景一般是這樣的:在程序中需要對某些關鍵代碼塊做併發控制,只有滿足條件的線程允許訪問。那麼這裏就有這樣幾個概念:鎖的持有線

原创 AbstractQueuedSynchronizer應用之讀寫鎖

思路分析 首先分析讀寫鎖的需求: 1、讀鎖狀態下,可以繼續加讀鎖,但是不能加寫鎖;如果有寫鎖在等待隊列,後續請求的讀鎖也需要加到等待隊列中。 2、寫鎖狀態下,不能加其他鎖。 3、讀鎖獲得鎖之後,需要通知後繼節點中(在第一個寫鎖之前)的讀鎖

原创 領域驅動設計之設計原則篇

      語言從c的面向過程到java的面向對象,在程序設計、組織的角度來看是在抽象、直觀化、便於模塊整合上的一次進步。現在的許多通用框架,比如spring、mybatis爲應用程序提供了對象的管理以及數據倉庫的操作封裝;對於一般規模的

原创 mysql中的聚集索引、非聚集索引、聚簇索引、稀疏索引、稠密索引

目錄   首先介紹這些索引的概念: 接着結合mysql進行講解: 首先介紹這些索引的概念: 1、聚集索引 聚集索引:指索引項的排序方式和表中數據記錄排序方式一致的索引  也就是說聚集索引的順序就是數據的物理存儲順序。它會根據聚集索引鍵的順

原创 AbstractQueuedSynchronizer應用之條件鎖

       相對於其他鎖實現,條件鎖是一個比較特殊的情況,需要滿足一定的條件才能獲得鎖,關鍵在於怎麼做到根據條件來決定是否給程序放行。這個不能也沒有必要直接在AQS中做相應實現,通過對全局state的控制,以及tryAcquire、tr

原创 AbstractQueuedSynchronizer初始應用之ReentrantLock

        前面介紹的是排他申請鎖的情況,也就是synchronized語法支持的內容。但是業務中會有更加複雜的場景,通過對tryAcquire、tryRelease覆寫的以及state屬性的使用,我們可以達到控制併發的目的,滿足具體

原创 產品設計之從戰略到落地

戰略層       成功的用戶體驗,其基礎是一個被明確表達的戰略。知道公司/團隊與用戶雙方對對方的期許和目標,有助於促進用戶體驗各方面戰略的確立和制定。明確商業目標和用戶目標,解決兩者之間的衝突,找到平衡點,確定產品原則和定位。“只可意會

原创 java鎖機制基類AbstractQueuedSynchronizer從設計到實現到應用

概念導入        在併發編程中一個很重要的概念就是鎖,本文以java中對鎖的實現爲例子做一個分析。我們使用鎖的場景一般是這樣的:在程序中需要對某些關鍵代碼塊做併發控制,只有滿足條件的線程允許訪問。那麼這裏就有這樣幾個概念:鎖

原创 servlet工作原理之tomcat篇

目錄 servlet容器 servlet容器的啓動過程 web應用的初始化 創建servlet實例 創建servlet對象 初始化servlet servlet體系結構 ServletConfig ServletRequest和Servl

原创 測試覆蓋率之cobertura

       下面介紹現有的一種測試覆蓋率報告方案:cobertura,具體是通過cobertura的maven以及Jenkins插件來實現測試覆蓋率的展示。 maven部分 <!-- 在clean時把老的ser文件也清理掉 --> <

原创 mac opencv-python部署測試

背景: 最近在看python的圖像處理sift等算法:https://blog.csdn.net/zhangziju/article/details/79754652 在運行如下代碼時出現如下錯誤: import cv2 import

原创 智能廣告投放

       首先什麼是廣告?對觀衆來說,是視頻播放開始以及中途的那30秒,是公交車站的大屏幕明星照;是百無聊賴或者痛恨萬分的難捱時光,也可以是最新產品、熱點的瞭解窗口。對企業來說,是推廣產品、提高品牌知名度的渠道,也是打造企業形象、控制

原创 程序員之我看“軟件工程”

       筆者有7年的工作經驗,但是平時對編碼以及計算機相關的具體技術投入較多,對於軟件工程這類涉及項目管理的專題思考以及經驗不多。最近看了《構建之法》這本書,對軟件工程進行了相關思考,現分享如下。        軟件工程,可拆爲軟件

原创 quasar 3 之 javaagent

接https://blog.csdn.net/guzhangyu12345/article/details/84666423 的最後例子,運行時會報如下錯誤: [quasar] ERROR: while transforming jav

原创 基於quartz的定時任務解決方案框架原理介紹_xxl-job

目錄   quartz原理介紹 原理白話 quartz設計實現 quartz支持的自定義 xxl-job 原理介紹 我的定製 quartz原理介紹 原理白話 java的定時任務解決方案中,quartz本身就是一個完整、強大的解決方案。現有