原创 Java併發-volatile

volatile自身特性 可見性:對一個volatile變量的讀,總是能看到(任意線程)對這個volatile變量最後的寫入。 原子性:對任意單個volatile變量的讀/寫具有原子性,單類似於volatile++這種複合操作不

原创 Java併發-順序一致性模型

順序一致性模型 順序一致性內存模型有兩大特性 1)一個線程中的所有操作必須按照程序的順序來執行。 2)(不管程序是否同步)所有線程都只能看到一個單一的操作執行順序。在順序一致性內存模型中,每個操作都必須原子執行且立刻對所有線程

原创 MAC 快速打開指定文件夾

1.在終端 cd到需要打開的路徑 2.open . over~

原创 Java併發-公平鎖與非公平鎖

1.公平鎖和非公平鎖釋放時,最後都要寫一個volatile變量的state。 protected final boolean tryRelease(int releases) { int c = getS

原创 Java併發-synchronized與原子操作的實現原理

synchronized Java中的每一個對象都可以作爲鎖 1.對於普通同步方法,鎖是當前實例對象 2.對於靜態同步方法,鎖是當前類的Class對象 3.對於同步方法塊,鎖是Synchronized括號裏配置的對象 當一

原创 MAC瀏覽器刷新/強制刷新

MAC瀏覽器刷新 Command+r MAC瀏覽器強制刷新 Command+Shift+r

原创 Java併發-synchronized與ReentrantLock之間的選擇

可重入 ReentrantLock和synchronized其實都是可重入的鎖。兩者都是同一個線程每進入一次,鎖的計數器都自增1,所以要等到鎖的計數器下降爲0時才能釋放鎖。 實現 synchronized是依賴JVM實現的,而Re

原创 Git簡單常用操作

git checkout 1、本地從當前所在分支上創建一個新分支: git checkout -b 新分支名 2、拉取遠程某個分支到本地: git checkout -b 本地分支名 origin/遠程分支名 git

原创 Java併發-happens-before,重排序

happens-before規則 程序順序規則:一個線程中的每個操作,happens-before於該線程中的任一後續操作 監視器鎖規則:對一個鎖的解鎖,happens-before於隨後對這個鎖的加鎖 volatile變量規

原创 Mac添加環境變量及Homebrew的安裝

Homebrew Homebrew是一款Mac OS平臺下的軟件包管理工具,擁有安裝、卸載、更新、查看、搜索等很多實用的功能。簡單的一條指令,就可以實現包管理,而不用你關心各種依賴和文件路徑的情況,十分方便快捷。 Homebrew

原创 Redis

什麼是redis?(Remote Dictionary Server(遠程數據服務)) 非阻塞多路複用: 又被稱爲事件驅動,reactor模式 下面舉一個例子,模擬一個tcp服務器處理30個客戶socket。 假設你是一個老

原创 Intellij IDEA註冊碼 激活(可用)

進入ide主頁面,help-register-license server,然後輸入 http://idea.iteblog.com/key.php(注意:php要小寫)即可~ 如下圖,不行的話就試試這個鏈接: http://x

原创 Java併發-活躍性問題

飢餓 當線程由於無法訪問它所需要的資源而不能繼續執行時,就發生了“飢餓“。 引發飢餓的最常見資源就是CPU時鐘週期。(無限循環,或者無限制地等待某個資源) Thread API中定義的線程優先級只是作爲線程調度的參考,定義了1

原创 mac QQ郵箱無法驗證用戶名和密碼

第一步:打開自己的QQ郵箱,點擊設置 第二步:選擇賬戶 第三步:開啓POP3/SMTP與IMAP/SMTP服務,之後點擊生成授權碼 第四步:點擊發送,會有生成授權碼 第五步:複製這串授權碼

原创 線程數設多少合適??

線程數設多少合適?? 提問:工作線程數是不是設置的越大越好? 回答:肯定不是的 1)一來服務器CPU核數有限,同時併發的線程數是有限的,1核CPU設置10000個工作線程沒有意義 2)線程切換是有開銷的,如果線程切換過於頻繁