日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高并发01_synchronized

發布時間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高并发01_synchronized 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于synchronized關鍵字:
一句話說出Synchronized的作用
能夠保證在同一時刻最多只有一個線程執行該段代碼,以達到保證并發安全的效果。
Synchronized的地位

  • Synchronized是Java的一個關鍵字
  • 是最基本的互斥同步的手段
  • 是并發編程中的元老級角色,是并發編程的必學內容

Synchronized的兩種用法介紹
對象鎖,包括方法鎖(默認鎖對象為this當前實例對象)和同步代碼塊鎖(自己指定鎖對象)。
類鎖,指synchronized修飾靜態的方法或指定鎖為Class對象。

第一個用法:對象鎖
代碼塊鎖
代碼塊形式:手動指定鎖對象
鎖對象的選取:若不特定鎖對象,可以用this(當前對象)作為我們的鎖。

例子如下:

Object的對象o放在堆里的,在堆上加了鎖,當有線程訪問這個對象,并想執行最后兩個語句時,應該首先要拿到這個鎖,然后進行訪問,當第二個線程過來想拿鎖的時候,應該是第一個線程執行完之后,把鎖釋放。鎖的互斥。


方法鎖形式

synchronized修飾普通方法(非靜態方法),鎖對象默認為this


這兩種是一樣的,鎖定的是this對象,不是鎖定整段代碼。
synchronized鎖定是一個對象,而不是代碼塊。

第二個用法:類鎖
類鎖的概念
概念:Java類可能有很多對象,但只有一個Class對象
本質:所謂的類鎖,就是Class對象的鎖
用法和效果:類鎖在同一時刻只能被一個對象擁有
形式一:synchronized加在static方法上
形式二:synchronized(*.class)代碼塊


這里寫synchronized(this)是不可以,靜態的屬性和方法是不需要new出對象進行訪問的


是new了一個對象,多個線程一起訪問這個對象


5個線程可能會出現線程重復的問題。這個時候是沒有鎖的,可能存在一個線程還沒有訪問完,另外一個線程又來了。

加上鎖,上述問題就不存在了。加上synchronized之后,這個代碼塊是原子操作,不可分的。

總結

以上是生活随笔為你收集整理的高并发01_synchronized的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。