原创 AQS-ReentrantLock實現原理

    AbstractQueuedSynchronizer (AQS)類如其名,抽象的隊列式同步容器,AQS定義類一套多線程訪問共享資源的同步器,許多同步類的實現都依賴於它,比如之前學習的ReentrantLock/Semaphore/C

原创 AQS-鎖優化方式

1. 避免死鎖; 2. 減少鎖的持有時間; 3. 減少鎖的粒度; 4. 鎖的分離(讀寫分離); 5. 儘量使用無鎖的操作,比如原子操作(Atomic系列類)、volatile關鍵字;

原创 JDK1.8 FutureTask源碼解讀(Future模式)

    在Java中比較常見的兩種創建線程的方法:繼承Thread類和實現Runnable接口。但是這兩種方法有個缺點就是無法獲取線程執行後的結果。所以Java之後提供了Future和Runnable接口,用於實現獲取線程執行結果。下面開始

原创 jenkins blue ocean 與 pipeline

jenkins blue ocean 是一個可視化、可編輯的流水線插件。 安裝blue ocean 插件 點擊 Blue ocean 進入可視化界面 創建流水線 點擊創建流水線完成創建,若已經有相同的項目,則會提示重命名。

原创 JDK 中Future模式使用

JDK 中Future模式的基本結構如下: 其中Future接口相當於訂單或契約,拿着她可以取到買的Mac Pro,也就是可以取到真實數據。RunnableFuture繼承了Future和Runnable兩個接口,其中run方法用用於

原创 Linux ssh 免密登錄設置成功,卻不生效

在本機上使用非root賬戶,生成ssh 密鑰,然後執行ssh-copy-id -i /home/用戶/.ssh/id_rsa.pub 遠程用戶@遠程ip,本機提示已經ssh公鑰添加到遠程主機用戶/.ssh下。 執行ssh 遠程用戶@遠程

原创 GitLab 添加SSH KEY 後依然提示需要輸入密碼

首先問題如題,開始排查問題的時候以爲是生成的SSH不對,嘗試重新生成,在添加ssh key到GitLab裏面,依然無效。 由於使用的是賬戶不是root,可能會是權限的問題,所以轉到root賬戶下操作,依然提示需要輸入密碼。 在網上搜索問題

原创 gitlab修改ip

gitlab 修改ip的兩種方式: 修改/etc/gitlab/gitlab.rd 裏面的#external_url 'http://gitlab.example.com' 爲ip地址,然後重新構建->重啓,但這做法相當於重新安裝,項目都

原创 jenkins 通過Blue Ocean創建可視化流水線

點擊創建流水線,依次填入倉庫地址,如果Git/GitLab已經添加了SSH KEY其會自動填寫ssh 和流水線名稱。 保存後會進入流水線編輯頁面:http://ip:端口/jenkins/blue/organizations/jenkin

原创 代碼質量管理平臺--sonarqube安裝

前置依賴mysql 5.6 or 5.7jdk 1.81.下載https://www.sonarqube.org/2.安裝unzip並解壓sonarqube並移動到/usr/localyum install unzipunzip sonar

原创 Jenkins插件安裝及配置

插件安裝:系統管理--》插件管理 安裝Maven Integration plugin 安裝SonarQube Scanner for Jenkins Publish Over SSH --發佈到遠程服務器系統配置:系統管理--》全局工

原创 Linux nexus 私服搭建

下載nexushttps://www.sonatype.com/download-oss-sonatype 上傳到服務器/opt/ 解壓 tar -zxvf nexus-3.14.0-04-unix.tar.gz -C /usr/loca

原创 linux nexus 配置使用

倉庫類型proxy:代理倉庫,用於代理遠程倉庫 ,負責打通私服與遠程倉庫之間的通道。group:倉庫組,通常包含了多個代理倉庫和宿主倉庫,在項目中只要引入倉庫組就可以下載到代理倉庫和宿主倉庫中的包hosted:宿主倉庫,內部項目、付費ja

原创 linux jdk 使用alternatives多版本控制

安裝配置 需要配置兩個內容,分別是java和javac命令,指定jdk目錄和優先級:alternatives --install /usr/bin/java java /usr/local/jdk版本/bin/java 1400alte

原创 Jenkins安裝及常見問題分析定位

前置條件JDK、tomcat 安裝tomcat下載地址: https://tomcat.apache.org/download-90.cgi useradd tomcat --新增一個名爲tomcat的用戶 passwd tomcat -