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

Java多線程鎖如何進行數據同步共享

開發 后端
Java多線程鎖需要我們大家詳細的學習一下,在數據安全方面Java多線程鎖就是一個相當重要的技術語法。希望大家詳細學習。

Java多線程鎖是為了解決數據同步中的數據安全問題,下面我們就來詳細的學習下有關于Java多線程鎖的相關問題。只有不斷的學習才能不斷的提高自身的相關技術。

大多數應用程序要求線程互相通信來同步它們的動作。在Java程序中最簡單實現同步的方法就是上Java多線程鎖。為了防止同時訪問共享資源,線程在使用資源的前后可以給該資源上鎖和開鎖。假想給復印機上鎖,任一時刻只有一個職員擁有鑰匙。若沒有鑰匙就不能使用復印機。#t#

給共享變量上Java多線程鎖就使得Java線程能夠快速方便地通信和同步。某個線程若給一個對象上了鎖,就可以知道沒有其他線程能夠訪問該對象。即使在搶占式模型中,其他線程也不能夠訪問此對象,直到上鎖的線程被喚醒、完成工作并開鎖。那些試圖訪問一個上鎖對象的線程通常會進入睡眠狀態,直到上鎖的線程開鎖。一旦鎖被打開,這些睡眠進程就會被喚醒并移到準備就緒隊列中。

在Java編程中,所有的對象都有鎖。線程可以使用synchronized關鍵字來獲得鎖。在任一時刻對于給定的類的實例,方法或同步的代碼塊只能被一個線程執行。這是因為代碼在執行之前要求獲得對象的Java多線程鎖。繼續我們關于復印機的比喻,為了避免復印沖突,我們可以簡單地對復印資源實行同步。如同下列的代碼例子,任一時刻只允許一位職員使用復印資源。通過使用方法(在 Copier 對象中)來修改復印機狀態。這個方法就是同步方法。只有一個線程能夠執行一個Copier對象中同步代碼,因此那些需要使用Copier對象的職員就必須排隊等候。

 

  1. class CopyMachine {  
  2. public synchronized void makeCopies(Document d, int nCopies) {  
  3. //only one thread executes this at a time  
  4. }  
  5. public void loadPaper() {  
  6. //multiple threads could access this at once!  
  7. synchronized(this) {  
  8. //only one thread accesses this at a time  
  9. //feel free to use shared resources, overwrite members, etc. 

 

Fine-grain Java多線程鎖

在對象級使用鎖通常是一種比較粗糙的方法。為什么要將整個對象都上鎖,而不允許其他線程短暫地使用對象中其他同步方法來訪問共享資源?如果一個對象擁有多個資源,就不需要只為了讓一個線程使用其中一部分資源,就將所有線程都鎖在外面。由于每個對象都有Java多線程鎖,可以如下所示使用虛擬對象來上鎖:

 

  1. class FineGrainLock {  
  2. MyMemberClass x, y;  
  3. Object xlock = new Object(), ylock = new Object();  
  4. public void foo() {  
  5. synchronized(xlock) {  
  6. //access x here  
  7. }  
  8. //do something here - but don't use shared resources  
  9. synchronized(ylock) {  
  10. //access y here  
  11. }  
  12. }  
  13. public void bar() {  
  14. synchronized(this) {  
  15. //access both x and y here  
  16. }  
  17. //do something here - but don't use shared resources  
  18. }  

 

若為了在方法級上同步,不能將整個方法聲明為synchronized關鍵字。它們使用的是成員Java多線程鎖,而不是synchronized方法能夠獲得的對象級鎖。

 

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

2010-03-17 18:21:54

Java多線程靜態數據

2010-03-16 15:32:26

2011-05-25 00:00:00

數據庫設計

2020-04-30 10:09:23

數字資產管理DAM數字資產

2010-03-16 13:47:48

Java多線程服務器

2009-09-10 23:17:33

ASP.NET Eva

2010-02-02 10:04:58

2022-05-25 15:33:27

區塊鏈加密貨幣

2017-03-07 10:37:05

非數據數據分析

2021-07-28 15:44:52

Java開發數據庫

2015-04-21 14:21:07

大數據數據分析

2010-02-02 16:47:12

Python主線程

2009-03-24 08:56:23

數據同步多線程Java

2021-05-26 10:12:07

數字化轉型IT領導者

2024-06-28 08:45:58

2021-12-14 22:12:30

云計算云存儲IT

2015-06-09 16:22:05

數據中心

2010-02-01 17:33:24

Python主線程

2024-01-05 15:28:06

鴻蒙數據同步GlobalThis

2022-08-17 06:25:19

偽共享多線程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产综合久久久久久蜜臀 | 久久久免费观看视频 | 五月天国产视频 | 亚洲精品久 | 中文字幕 国产 | 欧美在线观看黄色 | 婷婷激情在线 | 天堂一区在线观看 | 精品一区电影 | 国产真实精品久久二三区 | a级大毛片 | 丁香综合 | 成人午夜电影网 | 亚洲精品91 | 一区二区三区在线免费观看视频 | 欧美男人天堂 | 久视频在线观看 | 国产精品美女一区二区 | 四色成人av永久网址 | 国产高清精品一区二区三区 | 日韩中文字幕区 | 日本久久黄色 | 国产日产精品一区二区三区四区 | 久久成人人人人精品欧 | 日韩在线综合 | 超碰日本 | 高清人人天天夜夜曰狠狠狠狠 | 亚洲 自拍 另类 欧美 丝袜 | 国产成人精品综合 | 操到爽 | 男人的天堂一级片 | av影音 | 成人性视频免费网站 | 国产在线一区二区 | 国产精品国产三级国产aⅴ中文 | 91麻豆精品国产91久久久久久久久 | 亚洲欧美成人影院 | 日韩在线不卡视频 | 96久久久久久 | 国产精品美女在线观看 | 波波电影院一区二区三区 |