原创 《MySQL實戰45講》讀後感 34|到底可不可以使用join?

在實際生產中,關於 join 語句使用的問題,一般會集中在以下兩類: 我們 DBA 不讓使用 join,使用 join 有什麼問題呢? 如果有兩個大小不同的表做 join,應該用哪個表做驅動表呢? 今天這篇文章,我就先跟你說說

原创 Git基礎操作:將git commit id轉成short commit id

使用git log可以得到每次commit id,但是有時候我們發現有些系統上顯示的是short commit id , 如何轉換呢,可以使用 $ git rev-parse --short 4258f51defb6a56c04

原创 kafka搭建後zookeeper節點上的變化

具體搭建步驟參見官網文檔:http://kafka.apache.org/quickstart 啓動zookeeper nohup bin/zookeeper-server-start.sh config/zookeeper.p

原创 【C++從入門到放棄】C++編譯生成動態鏈接庫*.so及如何調用*.so進階篇-編譯jsoncpp

cstudy5中,我們演示了自己的寫的源碼進行編譯成鏈接庫,本章將講解編譯開源的jsoncpp 備註:上面提到的cstudy5示例參見: https://blog.csdn.net/hl_java/article/detail

原创 CAS存在的問題以及解決方案

CAS存在的問題以及解決方案 CAS雖然很高效的解決原子操作,但是CAS仍然存在三大問題。ABA問題,循環時間長開銷大和只能保證一個共享變量的原子操作 ABA問題 因爲CAS需要在操作值的時候檢查下值有沒有發生變化,如果沒有發

原创 《MySQL實戰45講》讀後感 21|爲什麼我只改一行語句,鎖這麼多

在上一篇文章中,我和你介紹了間隙鎖和 next-key lock 的概念,但是並沒有說明加鎖規則。間隙鎖的概念理解起來確實有點兒難,尤其在配合上行鎖以後,很容易在判斷是否會出現鎖等待的問題上犯錯。 所以今天,我們就先從這個加鎖規則

原创 【C++從入門到放棄】C++編譯生成動態鏈接庫*.so及如何調用*.so

動態庫*.so在linux下用c和c++編程時經常會碰到,最近在網站找了幾篇文章介紹動態庫的編譯和鏈接,總算搞懂了這個之前一直不太瞭解得東東,這裏做個筆記, 也爲其它正爲動態庫鏈接庫而苦惱的兄弟們提供一點幫助。 談點實際價值

原创 kafka搭建後生產者消費者Java示例

kafka搭建可以按照官方示例來操作 http://kafka.apache.org/quickstart 說明:本次使用的版本爲kafka_2.12-2.2.0 官方示例也有生產者,消費者的 shell版本示例,通常執行起來也很

原创 【C++從入門到放棄】C++編譯生成動態鏈接庫*.so及如何調用*.so進階篇2-編譯jsoncpp

【C++從入門到放棄】C++編譯生成動態鏈接庫*.so及如何調用*.so進階篇2-編譯jsoncpp 附:當前項目cstudy7 本文可以收穫什麼? 將其它項目生成的動態鏈接庫拿到本項目中使用 CMakeLists.txt中使用

原创 supervisor入門教程|安裝|啓動|實戰環節

supervisor是什麼 是一個客戶端/服務器系統,允許其用戶在類UNIX操作系統上控制許多進程(官方解釋)。 簡單點來講,就是一個監控腳本運行的工具,不過他可以統一化管理,laravel的隊列文檔上也有相關使用方式方法,例如:

原创 程序計數器(關於java虛擬機內存的那些事)

什麼是程序計數器? 程序計數器是一塊 較小 的內存空間,它可以看做是當前線程所執行的字節碼的 行號指示器 ;在虛擬機的概念模型裏(僅僅是概念模型,各種虛擬機可能會通過一些更高效的方式去實現),字節碼解釋器工作時,就是通過改變這個計數

原创 字典樹(Trie樹) Java實現源碼參考

定義 字典樹,又稱爲單詞查找樹,Tire數,是一種樹形結構,它是一種哈希樹的變種。用於保存大量的字符串。它的優點是:利用字符串的公共前綴來節約存儲空間。 字典樹結構對應的Java源碼 public class Trie {

原创 Singleton單例模式-【懶漢式-加雙重校驗鎖&防止指令重排序的懶漢式】實現方案中爲什麼需要加volatile關鍵字

前提知識點:volatile可以保證可見性+防止指令重排序,synchronized可以保證可見性+防止指令重排序+原子性。 也即是說volatile是synchronized的功能子集,我們知道在【懶漢式-加雙重校驗鎖】的單例模式

原创 jdk中synchronized加鎖原理以及新版本的優化

java中每個對象都可作爲鎖,鎖有四種級別,按照量級從輕到重分爲:無鎖、偏向鎖、輕量級鎖、重量級鎖。並且鎖只能升級不能降級。 在講這三個鎖之前,我先給大家講清楚自旋和對象頭的概念。 自旋 現在假設有這麼一個場景:有兩個線程A,B在競爭

原创 一次堆外內存泄露的排查過程

轉載自  一次堆外內存泄露的排查過程 https://blog.csdn.net/moakun/article/details/85377879 最近在做一個基於 websocket 的長連中間件,服務端使用實現了 socket.io 協