原创 Java 實現線程安全的三種方式

一個程序在運行起來的時候會轉換成進程,通常含有多個線程。  通常情況下,一個進程中的比較耗時的操作(如長循環、文件上傳下載、網絡資源獲取等),往往會採用多線程來解決。 比如顯示生活中,銀行取錢問題、火車票多個售票窗口的問題,通常會涉及到併

原创 一文徹底理解ReentrantLock可重入鎖的使用

java除了使用關鍵字synchronized外,還可以使用ReentrantLock實現獨佔鎖的功能。而且ReentrantLock相比synchronized而言功能更加豐富,使用起來更爲靈活,也更適合複雜的併發場景。這篇文章主要是從

原创 Atomic、volatile、ThreadLocal

volatile:輕量級的synchronized,高併發下保證變量的可見性。 可見性:在一個線程的工作內存中修改了該變量的值,該變量的值能立即回顯到主內存中,從而保證所有線程看到這個變量的值是一致的。 CAS有3個操作數,內存值V,舊的

原创 windows下安裝兩個mysql主從同步

主庫配置 1.主庫my.ini配置 [mysql] # 設置mysql客戶端默認字符集 default-character-set=utf8  [mysqld] #設置3306端口 port = 3306 # 設置MYSQL安裝目錄 b

原创 Redis-sentinel

Redis 的 Sentinel 系統用於管理多個 Redis 服務器(instance),Redis 的 Sentinel 爲Redis提供了高可用性。使用哨兵模式創建一個可以不用人爲干預而應對各種故障的Redis部署。 該系統執行以下

原创 redis.conf 配置文件介紹

redis.conf 配置項說明如下: 1: Redis默認不是以守護進程的方式運行,可以通過該配置項修改,使用yes啓用守護進程     daemonize no 2: 當Redis以守護進程方式運行時,Redis默認會把pid寫入/v

原创 本地安裝多個redis

1.複製一份 redis.windows-service.conf 成 redis.windows-service-6380.conf 2.修改redis.windows-service-6380.conf中的端口:port 6380,

原创 同步、異步、阻塞、非阻塞

    本文爲轉載文章,原文鏈接:https://www.jianshu.com/p/3d603166f54d 1、從I/O說起 這些概念之所以容易令人迷惑,在於很多人對I/O就沒有清晰準確的理解,後面的理解自然不可能正確。我想用一個具體

原创 isAnnotationPresent()方法

isAnnotationPresent()方法 官方釋義:         java.lang.Package.isAnnotationPresent(Class<? extends Annotation> annotationClass

原创 Spring Boot項目在多環境下調用不同配置文件

我們知道,一個項目在開發環境、測試環境、生產環境,不同的環境會有不同的配置,比如數據庫的配置就不同,那麼怎麼樣才能做到,不用每次換環境的時候,都去修改這些配置呢,下面以我寫的一個小案例來作說明。 如下圖是我項目的三個配置文件,其中,app

原创 tomcat+nginx+redis實現均衡負載、session共享(二)

1.redis簡介及下載安裝 作爲這次的主角,相信大家對redis應該都一定印象,redis是一款開源的高性能key-value數據庫,擁有豐富的鍵值儲存類型,並提供多種語言的API。 與一般數據庫不同,redis是使用內存作爲主存,而使

原创 session共享方式

第一種方式:nginx配置 ip_hash輪詢機制實現,這個實現方式簡單,但是有很大的侷限性,同一個ip,會被分配始終訪問同一個tomcat,因爲ip不變,nginx計算出來的hash也就不變,除非這個tomcat掛了,纔會分配到另外一個

原创 Mysql的my.ini文件

第一步,我們找到mysql安裝文件下面的my.ini文件,打開可以看到第一句:  # MySQL Server Instance Configuration File  Mysql服務實例配置文件  好,咱們撇開那些不是那麼重要的字幕,直

原创 windows設置tomcat定時重啓(關閉,啓動)設置成服務,並重啓服務

一、配置windows設置tomcat定時重啓 1.首先將tomcat註冊爲服務,先打開tomcat的bin目錄下service.bat文件,修改下面的值,這是sevvice的註冊名稱和顯示名稱,一般可使用默認值。 set SERVICE

原创 利用JAXB實現java實體類和xml互相轉換

1、應用場景 在使用WebService實現數據上傳下載,數據查詢時,可以利用JAXB實現java實體類和xml互相轉換 2、Demo 2.1 student.java 實體類,包含list(set同理)、map、Teacher、Date