原创 線程基礎
線程安全:當多個線程訪問某一個類(對象或方法)時,這個對象始終都能表現出正確的行爲,那麼這個類(對象或方法)就是線程安全的 synchronized: 可以在任意對象及方法上加鎖,而加鎖的這段代碼稱爲"互斥區"或"臨界區"
原创 線程髒讀
髒讀 對於對象的同步和異步方法,我們在設計自己的程序的時候,一定要考慮問題的整體性,不然會出現數據不一致的錯誤,很經典的錯誤就是髒讀(dirtyRead) public class DirtyRead { privat
原创 爲什麼使用Nginx和FastDFS
首先介紹一下爲什麼使用nginx和FastDFS,看下面這個圖,傳統方式上傳圖片的話,把圖片存到項目裏面的一個文件夾下面是沒有問題的,但是這種項目只適用於小型項目併發量小的. 但是電商項目,互聯網項目併發量是很高的,所以一臺服務器肯定
原创 fastdfs單臺部署
目錄 術語 單機文件系統的對比 適用場景: 部署結構 一、準備工作(倆臺機器同時進行) 二、安裝libfastcommon(倆臺機器同時進行) 三、安裝FastDFS 四、配置跟蹤器(192.168.1.172節點) 五、配置FastDF
原创 fastdfs配置參數
目錄 一、tracker參數配置 二、storage參數配置 一、tracker參數配置 tracker.conf 配置文件分析: #配置tracker.conf這個配置文件是否生效,因爲在啓動fastdfs服務端進程時需要指定配置文
原创 Dubbo與Zookeeper、SpringMVC整合和使用(負載均衡、容錯)
互聯網的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分佈式服務架構以及流動計算架構勢在必行,Dubbo是一個分佈式服務框架,在這種情況下誕生的。現在覈心業務抽取出來,作爲獨立的服務,使前端應用能更快速和穩定的響應。 第
原创 Netty原理架構解析
本文基於 Netty 4.1 展開介紹相關理論模型,使用場景,基本組件、整體架構,知其然且知其所以然,希望給大家在實際開發實踐、學習開源項目方面提供參考。 Netty 是一個異步事件驅動的網絡應用程序框架,用於快速開發可維護的高性能協議
原创 Socket網絡編程
Socket網絡編程 課程目標 網絡模型 TCP協議與UDP協議區別 Http協議底層實現原理。 什麼是網絡模型 網絡編程的本質是兩個設備之間的數據交換,當然,在計算機網絡中,設備主要指計算機。數據傳遞本身沒有多大的難度,不就是把一個設備
原创 Java併發編程:線程池的使用
Java併發編程:線程池的使用 在前面的文章中,我們使用線程的時候就去創建一個線程,這樣實現起來非常簡便,但是就會有一個問題: 如果併發的線程數量很多,並且每個線程都是執行一個時間很短的任務就結束了,這樣頻繁創建線程就會大大降
原创 Java併發編程:阻塞隊列
Java併發編程:阻塞隊列 在前面幾篇文章中,我們討論了同步容器(Hashtable、Vector),也討論了併發容器(ConcurrentHashMap、CopyOnWriteArrayList),這些工具都爲我們編寫多線程程序
原创 Java併發編程:synchronized
Java併發編程:synchronized 雖然多線程編程極大地提高了效率,但是也會帶來一定的隱患。比如說兩個線程同時往一個數據庫表中插入不重複的數據,就可能會導致數據庫中插入了相同的數據。今天我們就來一起討論下線程安全問題,以及
原创 Java併發編程:Timer和TimerTask
Java併發編程:Timer和TimerTask 下面內容轉載自: http://blog.csdn.net/xieyuooo/article/details/8607220 其實就Timer來講就是一個調度器,而Tim
原创 Java併發編程:CountDownLatch、CyclicBarrier和Semaphore
Java併發編程:CountDownLatch、CyclicBarrier和Semaphore 在java 1.5中,提供了一些非常有用的輔助類來幫助我們進行併發編程,比如CountDownLatch,CyclicBarrier和
原创 Java ConcurrentModificationException異常原因和解決方法
Java ConcurrentModificationException異常原因和解決方法 在前面一篇文章中提到,對Vector、ArrayList在迭代的時候如果同時對其進行修改就會拋出java.util.ConcurrentM
原创 Java併發編程:深入剖析ThreadLocal
Java併發編程:深入剖析ThreadLocal 想必很多朋友對ThreadLocal並不陌生,今天我們就來一起探討下ThreadLocal的使用方法和實現原理。首先,本文先談一下對ThreadLocal的理解,然後根據Threa