原创 在Java裏體驗一把協程Quasar

在還沒有協程的時代 操作系統產生一個進程,進程再產生若干個線程並行的處理邏輯,線程的切換由操作系統負責調度。每個線程都有自己的棧 棧是否有一些默認值? 的確有默認值,不同的虛擬機不同的平臺是不同的,想了解的可以看這裏 ht

原创 java調用c++文件

網上有很多例子,參照着執行有時候相對路徑問題經常卡住了,實戰了一把通過後,特重新整理一份,供小白參考 首先需要有一個含有native方法的java類 vi /Users/mac/work/git/javademo/src/ma

原创 jdk8之前版本中HashMap存在的問題剖析

一、put時存在丟失元素的問題 put方法邏輯說明 將新插入的元素放置到鏈表頭部,原來的鏈表頭部作爲新元素的next節點 put關鍵代碼塊 void createEntry(int hash, K key, V value, i

原创 gdb生產環境實際案例調試

獲取進程編號 ps aux | grep -v grep | grep myapp_as_brpc www-data 18900 10.1 1.2 9162996 407160 ? Sl 14:42 1:29

原创 GC專題-查看JVM使用的GC

一、設置垃圾收集器參數 我們設置JVM垃圾收集器參數時,一個參數就同時指定新生代老年代各自的垃圾收集器了。 -XX:+UseSerialGC,虛擬機運行在Client模式下的默認值,Serial+Serial Old。 -

原创 Git基礎操作:本地分支和遠程分支改名

相信聰明的你,直接看代碼就能看懂 # 本地分支改名 git branch -m feature/add_header2 feature/add_header # 刪除遠程分支 git push origin :feature/ad

原创 Git基礎操作:push提交多個文件成功後如何撤銷回退某個文件,回退代碼到某次commit

之前寫過類似的一篇文章 Git基礎操作:push提交成功後如何撤銷回退,回退代碼到某次commit 按照那個示例,把期間所有commitid下的文件都會回滾掉,但是如果只想將其中某個文件回滾可以下面的示例來搞。 git log O

原创 ThreadPoolExecutor是如何處理任務的異常情況

本文因生產環境線程池某些場景下的任務異常後,日誌文件中沒有被記錄進來產生的困惑引發的思考。 當然如果所有異步的業務方法run裏面都加上一層try…catch…就可以主動捕獲所有的異常,也能夠記錄到日誌文件中,然而總有一些人總有一些

原创 【C++從入門到放棄】C++/g++不同文件夾的編譯

本文大面積參考了簡書資料 https://www.jianshu.com/p/2b047bcce8fa ,由於源書上存在好幾處細節上的問題,比如: class Afunc 應該是 class A std::cout<<#i

原创 docker入門實踐,安裝指定版本的mysql鏡像

本文以安裝mysql5.7爲例 查找鏡像倉庫 含有mysql關鍵字的記錄,這裏選擇了stars最高,即第1條 $ docker search mysql NAME

原创 如何成爲github開源項目的貢獻者contributor

如果你對某個開源項目非常感興趣,其中的issue你發現你會解決,或者發現了遺留下來的問題,而且你也想參與進來去改進它,那麼接下來的內容就是告訴你如何成爲一個contributor。 1. 註冊一個github帳號 進入github

原创 Git基礎操作:從指定遠程分支中拉取新分支

以前的例子是這樣了 git checkout -b 本地分支名 , 這種方式也會拉取新分支,只不過是從當前分支進行拉取 從指定遠程分支中拉取新分支的示例如下: git checkout -b 本地分支名 origin/遠程分支名

原创 Git基礎操作:個別文件回滾到指定版本

發現某個文件被錯誤的提交了,這個文件還是和其它代碼一起提交的,如何還原一下呢? 命令格式: git checkout commitid $mypath/$myfile 具體案例: git log $mypath/$myfile

原创 【C++從入門到放棄】集合list,map的curd操作示例

#include <iostream> #include <vector> #include <map> void func(int &b) { b = b * b; } int main() { usin

原创 Git基礎操作:刪除錯誤提交到暫存區的內容

這裏寫自定義目錄標題 這裏以.mvn目錄爲示例,如果錯誤的將.mvn目錄添加到git暫存區,可以通過如下命令來進行撤消。 git rm .mvn/ --cached -r