原创 併發Queue(ConcurrentLinkedQueue和BlockingQueue)

在併發隊列上JDK提供了兩套實現,一個是以ConcurrentLinkedQueue爲代表的高性能隊列,一個是以BlockingQueue接口爲代表的阻塞隊列,無論哪種都繼承自Queue 一、ConCurrentLinkedQueue:

原创 Redis下載以及安裝

一、下載redis 1、進入redis官網https://redis.io/download下載頁面 2、下載redis穩定版 二、安裝 1、將下載的安裝包上傳至linux服務器上面 2、解壓redis並移動到指定目錄 3、安

原创 Redis 5.0 配置主從服務器

第一步:確認關閉所有服務器的防火牆 ps:(本人第一次就是吃虧在防火牆,搞了很久) 關閉防火牆: systemctl stop firewalld.service #停止firewall systemctl disable firew

原创 JAVA網絡編程Netty框架初識

一、NETTY簡介 在網絡編程領域, Netty是Java的卓越框架。 對於我們許多人來說,它們已經變得不可或缺, 因爲它們既能滿足我們的技術需求,又 能滿足我們的時間表。它駕馭了Java高級API的能力, 並將其隱藏在一個易於使用的

原创 JAVA 網絡編程

一、傳統的網絡編程(BIO) 含義:Socket又稱“套接字”,應用程序通常通過“套接字”向網絡發出請求或者應答網絡請求。 Socket和ServerSocket類庫位於java.net包中。ServerSocket用於服務器端,So

原创 GIT常用操作命令及工作流程

一、GIT命令 二、GIT工作流程 簡單工作流程圖 複雜工作流程圖

原创 Disruptor 學習

Martin Fowler在自己網站上寫了一篇LMAX架構的文章,在文章中他介紹了LMAX是一種新型零售金融交易平臺,它能夠以很低的延遲產生大量交易。這個系統是建立在JVM平臺上,其核心是一個業務邏輯處理器,它能夠在一個線程裏每秒處理

原创 JAVA多線程 重入鎖和讀寫鎖

在java多線程中,我們真的可以使用synchronized關鍵字來實現線程間的同步互斥工作,那麼其實還有一個更優秀的機制去完成這個“同步互斥”工作,他就是Lock對象,重入鎖和讀寫鎖。他們具有比synchronized更爲強大的功能

原创 JAVA Executor框架創建線程池

爲了更好的控制多線程,JDK提供理論一套線程框架Executor,幫助開發人員有效的進行線程控制。它們都在java.util.concurrent包中,是JDK併發包的核心。其中有一個比較重要的類:Executors,他扮演着線程工廠的角

原创 JAVA 多線程(生產者和消費者模式)

在生產-消費模式中:通常由兩類線程,即若干個生產者的線程和若干個消費者的線程。生產者線程負責提交用戶請求,消費者線程則負責具體處理生產者提交的任務,在生產者和消費者之間通過共享內存緩存區進行通信。 主要構成: provider:生產者線

原创 JAVA 多線程Future模式

Future模式有點類似於商品訂單。比如在網購時,當看重某一件商品時,就可以提交訂單,當訂單處理完成後,在家裏等待商品送貨上門即可。或者說更形象的我們發送Ajax請求的時候,頁面是異步的進行後臺處理,用戶無須一直等待請求的結果,可以繼續瀏

原创 JAVA Concurrent.util工具類的使用

一、CyclicBarrier的使用: 假設有隻有的一個場景:每個線程代表一個跑步運動員,當運動員都準備好後,才一起出發,只要有一個沒有準備好,大家都等待。 CyclicBarrier示例: public class UseCycl

原创 java多線程Master-worker模式

Master-Worker模式是常用的並行計算模式。它的核心思想是系統由兩類進程協作工作:Master進程和Worker進程。Master負責接收和分配任務,Worker負責處理子任務。當各個Worker子進程處理完成後,會將結果返回給M

原创 垃圾會算法

一、引用計數算法(無法解決循環引用的問題,不被java採納) 當一個對象被引用的時候+1,不被引用的時候-1,爲0的時候進行回收 二、根搜索算法 棧中的引用的對象、方法區中靜態屬性引用的對象、方法區中常量引用的對象、本地方法區中JNI引用

原创 java多線程之間的通信

一、使用wait()和notify()方法結合實現通信 注意:wait()和notify()必須在synchronized中使用 wait():是當前線程休眠並且釋放鎖。 notify():喚醒另一個線程 實例:input線程向共享數據中