您好,登錄后才能下訂單哦!
這篇文章主要介紹java中stringbuffer線程安全分析的示例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
1.SpringMVC,Spring Web MVC是一種基于Java的實現了Web MVC設計模式的請求驅動類型的輕量級Web框架。2.Shiro,Apache Shiro是Java的一個安全框架。3.Mybatis,MyBatis 是支持普通 SQL查詢,存儲過程和高級映射的優秀持久層框架。4.Dubbo,Dubbo是一個分布式服務框架。5.Maven,Maven是個項目管理和構建自動化工具。6.RabbitMQ,RabbitMQ是用Erlang實現的一個高并發高可靠AMQP消息隊列服務器。7.Ehcache,EhCache 是一個純Java的進程內緩存框架。
在對于一些類作用于線程時,安全系數高的線程更推薦大家使用,在盡可能的程度上降低程序出錯的可能性。對于本篇所要提到的StringBuffer而言,在其緩沖區中有多個線程的存在,我們在查詢其內部方法時發現了鎖的存在。現在我們就StringBuffer線程、鎖的應用、線程安全分析逐步帶來介紹。
1.StringBuffer線程說明
Java.lang.StringBuffer線程安全的可變字符序列。一個類似于String的字符串緩沖區,但不能修改。雖然在任意時間點上它都包含某種特定的字符序列,但通過某些方法調用可以改變該序列的長度和內容。
可將字符串緩沖區安全地用于多個線程。可以在必要時對這些方法進行同步,因此任意特定實例上的所有操作就好像是以串行順序發生的,該順序與所涉及的每個線程進行的方法調用順序一致。
2.synchronized鎖的應用方式
(1)修飾實例方法,對當前實例加鎖
public synchronized StringBuffer append(int i) { toStringCache = null; super.append(i); return this; }
(2)修飾靜態方法,對當前類對象加鎖
public static synchronized void test(){ i++; }
(3)修飾代碼塊,對指定對象加鎖
public boolean contentEquals(CharSequence cs) { // Argument is a StringBuffer, StringBuilder synchronized(cs) { return nonSyncContentEquals((AbstractStringBuilder)cs); } }
3.線程安全分析
StringBuffer buffer= new StringBuffer(); buffer.append("d"); 然后進入appen里面看看 @Override public synchronized StringBuffer append(String str) { toStringCache = null; super.append(str); return this; }
看到synchronized,在方法上面,說明是有線程安全的。
以上是“java中stringbuffer線程安全分析的示例”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。