摘要:鎖的種類自動(dòng)鎖最常用可以給類方法代碼塊加鎖手動(dòng)鎖,只能鎖代碼塊兒,且需要手動(dòng)加鎖解鎖,忘記解鎖會(huì)造成死鎖輕量級(jí)鎖,不會(huì)造成線程阻塞,只能修飾變量,且只能保證變量的修改可見(jiàn)性,無(wú)法保證原子性解決死鎖的方法盡量使用的方法,設(shè)置超時(shí)時(shí)間,超時(shí)可以
鎖的種類:
synchronize自動(dòng)鎖(最常用) 可以給類、方法、代碼塊加鎖 lock手動(dòng)鎖,只能鎖代碼塊兒,且需要手動(dòng)加鎖解鎖,忘記解鎖會(huì)造成死鎖 volatile輕量級(jí)鎖,不會(huì)造成線程阻塞,只能修飾變量,且只能保證變量的修改可見(jiàn)性,無(wú)法保證原子性
解決死鎖的方法:
1)盡量使用tryLock(long timeout, TimeUnit unit)的方法(ReentrantLock、ReentrantReadWriteLock),設(shè)置超時(shí)時(shí)間,超時(shí)可以退出防止死鎖。 2)盡量使用java.util.concurrent(jdk 1.5以上)包的并發(fā)類代替手寫控制并發(fā),比較常用的是ConcurrentHashMap、ConcurrentLinkedQueue、AtomicBoolean等等,實(shí)際應(yīng)用中java.util.concurrent.atomic十分有用,簡(jiǎn)單方便且效率比使用Lock更高 3)盡量降低鎖的使用粒度,盡量不要幾個(gè)功能用同一把鎖 4)盡量減少同步的代碼塊
悲觀鎖與樂(lè)觀鎖
悲觀鎖用于線程沖突率高的場(chǎng)景,用提前加鎖保證線程安全 樂(lè)觀鎖用于線程沖突率底的場(chǎng)景,用修改前后版本號(hào)是否一致保證線程安全
未完待續(xù)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/74457.html
摘要:導(dǎo)讀閱讀本文需要有足夠的時(shí)間,筆者會(huì)由淺到深帶你一步一步了解一個(gè)資深架構(gòu)師所要掌握的各類知識(shí)點(diǎn),你也可以按照文章中所列的知識(shí)體系對(duì)比自身,對(duì)自己進(jìn)行查漏補(bǔ)缺,覺(jué)得本文對(duì)你有幫助的話,可以點(diǎn)贊關(guān)注一下。目錄一基礎(chǔ)篇二進(jìn)階篇三高級(jí)篇四架構(gòu)篇五擴(kuò) 導(dǎo)讀:閱讀本文需要有足夠的時(shí)間,筆者會(huì)由淺到深帶你一步一步了解一個(gè)資深架構(gòu)師所要掌握的各類知識(shí)點(diǎn),你也可以按照文章中所列的知識(shí)體系對(duì)比自身,對(duì)自己...
摘要:多線程編程這篇文章分析了多線程的優(yōu)缺點(diǎn),如何創(chuàng)建多線程,分享了線程安全和線程通信線程池等等一些知識(shí)。 中間件技術(shù)入門教程 中間件技術(shù)入門教程,本博客介紹了 ESB、MQ、JMS 的一些知識(shí)... SpringBoot 多數(shù)據(jù)源 SpringBoot 使用主從數(shù)據(jù)源 簡(jiǎn)易的后臺(tái)管理權(quán)限設(shè)計(jì) 從零開(kāi)始搭建自己權(quán)限管理框架 Docker 多步構(gòu)建更小的 Java 鏡像 Docker Jav...
摘要:以下為大家整理了阿里巴巴史上最全的面試題,涉及大量面試知識(shí)點(diǎn)和相關(guān)試題。的內(nèi)存結(jié)構(gòu),和比例。多線程多線程的幾種實(shí)現(xiàn)方式,什么是線程安全。點(diǎn)擊這里有一套答案版的多線程試題。線上系統(tǒng)突然變得異常緩慢,你如何查找問(wèn)題。 以下為大家整理了阿里巴巴史上最全的 Java 面試題,涉及大量 Java 面試知識(shí)點(diǎn)和相關(guān)試題。 JAVA基礎(chǔ) JAVA中的幾種基本數(shù)據(jù)類型是什么,各自占用多少字節(jié)。 S...
閱讀 555·2021-10-19 11:45
閱讀 1367·2021-09-30 09:48
閱讀 1480·2021-08-16 10:56
閱讀 743·2021-07-26 23:38
閱讀 3215·2019-08-30 13:15
閱讀 2601·2019-08-30 12:45
閱讀 1836·2019-08-29 12:14
閱讀 2085·2019-08-26 18:42