java多線程:鎖
java的多線程中的鎖是干嘛的呢?在網上找了很多博客,大都是很專業的語言,讓我一時間摸不着頭腦。下面分三個部分來總結多線程中的鎖的概念。
一,基礎概念:
多線程在運行的時候可能會遇到這樣的問題,多個線程要用到同一個資源,那么可能會出現錯亂,比如線程要改動資源里的數據,那么多個線程同時改就亂了套了。就像公共廁所,必須要一個一個接着上,不能兩個人或者多個人同時上。那么鎖這個東西就是像廁所里的門,一個人在上廁所,鎖上了們,那下一個人就不能進去了。同樣的,如果我們想讓某一個程序或者某一個變量只能同時被一個線程運行,就得給程序上鎖。所以上了鎖,就能保證線程有秩序的去運行了。
這里補充一個面試常問的問題:進程和線程的區別:進程是某一個具有獨立功能的程序的運行活動,它可以申請系統資源,是一個活動的實體。二線程的范圍要比進程小,一個進程可以擁有多個線程。我們把進程作為分配資源的基本單位,而把線程作為獨立運行和獨立調用的基本單位。
二,實現方式:
具體來說呢。首先Object對象,都有自己的一把鎖,也就是說,你隨便定義一個變量,這個變量就有一把鎖,保證自己只能同時被一個線程使用。這是對象鎖。如果我們想給一個函數上鎖怎么辦?函數定義加上關鍵字synchronized就可以了,
---------------------
作者:Dacc123
來源:CSDN
原文:https://blog.csdn.net/Dacc123/article/details/77386108
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!