原创 Java併發原理學習筆記+總結+實戰(5)——Lock接口

一、     在JDK1.5之後,在java.util.concurrent.locks的包中提供了另一種實現代碼同步的方法,Lock。     在前面說過,synchronize鎖是一種重量級的,特別耗費資源的鎖。在使用synchron

原创 Java併發原理學習筆記+總結+實戰(2)——線程帶來的風險

1、線程帶來的風險     java對線程的支持其實是一把雙刃劍。雖然java提供了相應的語言和庫,以及一種明確的跨平臺內存模型,這些工具簡化了併發應用程序的開發,但同時也提高的對開發人員的技術要求,因爲更多的程序中會使用線程。 1.1

原创 List對其中的map按規則排序

public List<Map<String, Object>> getBreedRecordList(Batch batchBean) { List<Map<String, Object>> fieldList

原创 Java併發原理學習筆記+總結+實戰(6)——可重入鎖

Java中常用的重入鎖     java中重入鎖的定義是指可重複、遞歸調用的鎖,在得到同一個對象或類的前提下,外層使用鎖之後,在內層中依然可是使用且不會發生死鎖。其中最常見的關鍵字是synchronize和reentrantLock這兩個

原创 Java併發原理學習筆記+總結+實戰(4)——volatile的原理與使用

    volatile是一種輕量級鎖,被volatile關鍵字修飾的變量,在線程之間是可見的。即一個線程修改了這個變量的值,在另一個線程中能夠讀到這個修改後的值。     像我們之前所說的synchronize除了能讓線程之間互斥以外,

原创 Java併發原理學習筆記+總結+實戰(3)——單例與線程安全問題

1.單例模式 餓漢模式 public class Singleton { // 私有化構造方法 private Singleton() { } private static Singleton instance =

原创 Java併發原理學習筆記+總結+實戰(2)——線程安全性問題

1、線程帶來的風險     java對線程的支持其實是一把雙刃劍。雖然java提供了相應的語言和庫,以及一種明確的跨平臺內存模型,這些工具簡化了併發應用程序的開發,但同時也提高的對開發人員的技術要求,因爲更多的程序中會使用線程。 1.1

原创 Java併發原理學習筆記+總結+實戰(1)

  爲什麼要學習併發編程?   •1.發揮多處理的強大能力 •2.建模的簡單性 •3.異步事件的簡化處理 •4.響應更加靈敏的用戶界面   •1.找工作,面試 •2.瞭解併發編程的原理,提高代碼的編寫能力 •3.解決工作中遇到的併發問題