成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java線程同步鎖解決共享數據安全

開發 后端
Java線程同步鎖如何才能報自己數據的安全呢?這個問題是很多人都在關系的。下面我們就詳細的看看相關技術特點就會找到答案。

我們在共享我們的數據的時候必須要考慮到安全的問題。Java線程同步鎖就幫助我們解決了這個難纏的問題。下面我們就來學些有關著房門的問題,希望大家有所后收獲。

我們可以在計算機上運行各種計算機軟件程序。每一個運行的程序可能包括多個獨立運行的線程(Thread)。線程(Thread)是一份獨立運行的程序,有自己專用的運行棧。線程有可能和其他線程共享一些資源,比如,內存,文件,數據庫等。

 

當多個Java線程同步鎖同時讀寫同一份共享資源的時候,可能會引起沖突。這時候,我們需要引入線程“同步”機制,即各位線程之間要有個先來后到,不能一窩蜂擠上去搶作一團。

 

同步這個詞是從英文synchronize(使同時發生)翻譯過來的。我也不明白為什么要用這個很容易引起誤解的詞。既然大家都這么用,咱們也就只好這么將就。 Java線程同步鎖的真實意思和字面意思恰好相反。線程同步的真實意思,其實是“排隊”:幾個線程之間要排隊,一個一個對共享資源進行操作,而不是同時進行操作。

 

因此,關于線程同步,需要牢牢記住的第一點是:線程同步就是線程排隊。同步就是排隊。線程同步的目的就是避免線程“同步”執行。這可真是個無聊的繞口令。

關于線程同步,需要牢牢記住的第二點是 “共享”這兩個字。只有共享資源的讀寫訪問才需要同步。如果不是共享資源,那么就根本沒有同步的必要。#t#

 

關于線程同步,需要牢牢記住的第三點是,只有“變量”才需要同步訪問。如果共享的資源是固定不變的,那么就相當于“常量”,線程同時讀取常量也不需要同步。至少一個Java線程同步鎖修改共享資源,這樣的情況下,線程之間就需要同步。

 

關于線程同步,需要牢牢記住的第四點是:多個線程訪問共享資源的代碼有可能是同一份代碼,也有可能是不同的代碼;無論是否執行同一份代碼,只要這些線程的代碼訪問同一份可變的共享資源,這些線程之間就需要同步。

 

為了加深理解,下面舉幾個例子。

有兩個采購員,他們的工作內容是相同的,都是遵循如下的步驟:

 

(1)到市場上去,尋找并購買有潛力的樣品。

 

(2)回到公司,寫報告。

 

這兩個人的工作內容雖然一樣,他們都需要購買樣品,他們可能買到同樣種類的樣品,但是他們絕對不會購買到同一件樣品,他們之間沒有任何共享資源。所以,他們可以各自進行自己的工作,互不干擾。

 

這兩個采購員就相當于兩個Java線程同步鎖;兩個采購員遵循相同的工作步驟,相當于這兩個線程執行同一段代碼。

 

下面給這兩個采購員增加一個工作步驟。采購員需要根據公司的“布告欄”上面公布的信息,安排自己的工作計劃。

這兩個采購員有可能同時走到布告欄的前面,同時觀看布告欄上的信息。這一點問題都沒有。因為布告欄是只讀的,這兩個采購員誰都不會去修改布告欄上寫的信息。

 

下面增加一個角色。一個辦公室行政人員這個時候,也走到了布告欄前面,準備修改布告欄上的信息。

如果行政人員先到達布告欄,并且正在修改布告欄的內容。兩個采購員這個時候,恰好也到了。這兩個采購員就必須等待行政人員完成修改之后,才能觀看修改后的信息。

 

如果行政人員到達的時候,兩個采購員已經在觀看布告欄了。那么行政人員需要等待兩個采購員把當前信息記錄下來之后,才能夠寫上新的信息。

 

上述這兩種情況,行政人員和采購員對布告欄的訪問就需要進行同步。因為其中一個線程(行政人員)修改了共享資源(布告欄)。而且我們可以看到,行政人員的工作流程和采購員的工作流程(執行代碼)完全不同,但是由于他們訪問了同一份可變共享資源(布告欄),所以他們之間需要同步。

 

Java線程同步鎖

前面講了為什么要Java線程同步鎖同步,下面我們就來看如何才能線程同步。

線程同步的基本實現思路還是比較容易理解的。我們可以給共享資源加一把鎖,這把鎖只有一把鑰匙。哪個線程獲取了這把鑰匙,才有權利訪問該共享資源。

 

生活中,我們也可能會遇到這樣的例子。一些超市的外面提供了一些自動儲物箱。每個儲物箱都有一把鎖,一把鑰匙。人們可以使用那些帶有鑰匙的儲物箱,把東西放到儲物箱里面,把儲物箱鎖上,然后把鑰匙拿走。這樣,該儲物箱就被鎖住了,其他人不能再訪問這個儲物箱。(當然,真實的儲物箱鑰匙是可以被人拿走復制的,所以不要把貴重物品放在超市的儲物箱里面。于是很多超市都采用了電子密碼鎖。)

 

Java線程同步鎖這個模型看起來很直觀。但是,還有一個嚴峻的問題沒有解決,這個同步鎖應該加在哪里?

 

當然是加在共享資源上了。反應快的讀者一定會搶先回答。

 

責任編輯:張浩 來源: CSDN
相關推薦

2010-03-16 17:39:36

Java多線程鎖

2023-09-28 08:51:58

Java數據

2024-05-13 17:40:09

JavaLocking

2022-03-24 13:36:18

Java悲觀鎖樂觀鎖

2021-03-10 15:59:39

JavaSynchronize并發編程

2025-02-17 02:00:00

Monitor機制代碼

2024-04-11 08:16:36

C++線程共享數據

2009-09-14 19:39:14

批量線程同步

2010-03-16 16:34:06

Java編程語言

2021-03-15 07:02:02

java線程安全

2024-06-28 08:45:58

2022-08-17 06:25:19

偽共享多線程

2024-10-29 15:23:45

Python線程安全

2019-01-04 11:18:35

獨享鎖共享鎖非公平鎖

2011-06-30 17:21:56

Qt 線程 共享

2009-03-24 08:56:23

數據同步多線程Java

2012-04-16 10:12:54

Java線程

2024-10-31 11:32:28

2020-04-06 13:50:43

數據安全大數據5G

2010-03-17 18:21:54

Java多線程靜態數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产欧美精品一区二区色综合朱莉 | 国产激情一区二区三区 | 亚洲三区在线观看 | 97精品国产手机 | 久久久青草 | 日韩资源 | 国产精品一区二区三区久久久 | 91视频.com| 欧美区日韩区 | 黄色视频a级毛片 | 亚洲成人在线网 | 一区中文字幕 | 国产精品久久久乱弄 | 久综合| 在线观看av网站永久 | 日韩av资源站 | 天天操天天怕 | 国产一区视频在线 | 亚洲国产精品日韩av不卡在线 | 日韩欧美三区 | 婷婷丁香在线视频 | 色综合一区 | 特级黄一级播放 | 男女网站免费观看 | 欧美视频二区 | 日中文字幕在线 | 亚洲风情在线观看 | 欧美成人高清视频 | 亚洲国产成人av好男人在线观看 | 欧美日韩亚洲系列 | 老妇激情毛片免费 | 区一区二区三在线观看 | 欧美三级电影在线播放 | 在线视频 亚洲 | 91网在线播放 | 国产 日韩 欧美 在线 | 亚洲视频在线一区 | 久久精品国产免费看久久精品 | 成人黄色av网站 | www.9191| 亚洲看片网站 |