原创 多線程重排序問題

爲什麼要重排序? 根據程序順序規則:在不改變程序運行結果前提下,儘可能提高並行度.也就是爲了提高性能改變代碼的執行順序. 什麼樣的代碼不會重排序? 數據依賴的數據,比如後面的代碼執行需要用到前面的代碼, 簡單說兩個操作其中如果有一

原创 多線程問題總結

死鎖問題 死鎖檢測 jps -l // 列出所有java線程 jstack -l xxxx // 查看要檢測線程的堆棧信息 JConsole 圖形化界面檢測死鎖 jvisualvm //圖形化監控界面,可以直接看出死鎖 死鎖避免

原创 多線程總結(一)

多線程基礎 爲什麼要使用多線程程,提高資源利用率,讓原來串行的代碼並行執行提高效率. 使用多線程 繼承Thread類或者實現Runnable接口 線程安全:簡單理解多線程情況下無論怎樣執行和單線程執行結果是一樣的,就是線程安全的

原创 多線程總結(二)

synchronized監視器監視對象 synchronized監視器監視類 線程安全問題 volatile synchronized方法 什麼時候用synchronized ,有線程安全問題的時候用,什麼時候有線程安全問題?

原创 什麼是架構師

高併發就是請求量大,以打架比喻: 我一個人一次可以打100個 一臺服務器可以每秒鐘可以提供100此服務 如果來了1000個人,那麼我肯定打不過,最好的辦法是我找10個人來的打,他們必須也能一個打100個 一臺服務器不能一下子承受1

原创 RabbitMQ

什麼是MQ 爲什麼要用RabbitMQ 應用場景有哪些 如何使用 基本原理 常見問題 與其他mq對比 集羣問題 配置問題

原创 mysql 隔離級別

set session transaction isolation level read uncommitted; -- read uncommited 可以替換爲read committed /repeatable read/

原创 mysql必知必會總結

SELECT * from products; -- 查詢所有 select DISTINCT vend_id from products; -- DISTINCT 去重 應用於所有列不僅僅是前置它的列 SELECT prod_n

原创 spring事務傳播

什麼是事務傳播 如果一個方法上面加了事務註解這個方法就是事務方法.如果一個事務方法被其他方法調用則會涉及到事務傳播的問題 外圍方法:方法裏調用方法,外面的方法就是外圍方法 內部方法:就是被調用的方法. 外圍方法事務 如果調用

原创 mysql索引原理

背景 1.1. 讀寫比例10:1 1.2. 性能出現瓶頸 1.3. 問題 1.3.1. 如何簡歷索引 1.3.2. 索引順序如何 2. 目的 2.1. 提高查詢速度,相當於目錄 3. 原理 3.1. 縮小數據範圍 3.2.

原创 springcloud入門[宏觀認識]

基礎 1.1. 什麼是微服務 獨立的系統拆分成多個小型服務,服務在各自進程中運行,服務間通過基於HTTP的RESTful風格的API進行通信協作 高內聚,低耦合,獨立開發測試部署,可以使用不同語言編寫 1.2. 與單體系統

原创 redis持久化

redis持久化有兩種方式: RDB 什麼是RDB 是把redis數據庫中的數據原樣保存的硬盤當中; 爲什麼需要持久化: redis是在內存中的key-value數據庫,當服務器關閉的時候或故障斷電的時候如果沒有持久化功能數據會全部丟

原创 redis入門

什麼是redis 是一個高性能key-value非關係型數據庫 可以用來做什麼 可以用來做緩存,消息隊列 數據結構 string set zset hash list 特性 可以持久化,發佈訂閱模式 運行原理 持久化方式 rdb

原创 Spring MVC入門

什麼是springmvc Spring Web MVC是基於Servlet API構建的原始Web框架,從一開始就包含在Spring框架中。Spring Web MVC的正式名稱來自其源模塊(Spring -webmvc)的名稱,但它

原创 【spring】IOC

前言 大家都知道spring的核心是Ioc和aop,也都知道IOC中的DI,但是真的想弄清楚什麼是IOC其實還是挺困難的,最近看了不少關於IOC的文章,故在此總結一番,方便日後回顧查看。 什麼是IOC 控制反轉(Inversion o