java之synchronized關鍵字使用詳解

2021-06-21 21:54:53 字數 781 閱讀 9211

出處:

一、synchronized關鍵字的作用域有二種:

1.是某個物件例項內,synchronized amethod(){}可以防止多個執行緒同時訪問這個物件的synchronized方法(如果乙個物件有多個synchronized方法,只要乙個執行緒訪問了其中的乙個synchronized方法,其它執行緒不能同時訪問這個物件中任何乙個synchronized方法)。這時,不同的物件例項的 synchronized方法是不相干擾的。也就是說,其它執行緒照樣可以同時訪問相同類的另乙個物件例項中的synchronized方法;

2.是某個類的範圍,synchronized static astaticmethod{}防止多個執行緒同時訪問這個類中的synchronized static 方法。它可以對類的所有物件例項起作用。

二、除了方法前用synchronized關鍵字,synchronized關鍵字還可以用於方法中的某個區塊中,表示只對這個區塊的資源實行互斥訪問。用法是: synchronized(this),它的作用域是當前物件;

三、synchronized關鍵字是不能繼承的

,也就是說,基類的方法synchronized f(){} 在繼承類中並不自動是synchronized f(){},而是變成了f(){}。繼承類需要你顯式的指定它的某個方法為synchronized方法;

總結:synchronized amethod(){}是物件作用域的方法同步;

static synchronized amethod(){}是類作用域的方法同步;

synchronized(this)是區塊作用域的同步。

Java學習之執行緒鎖 synchronized

同步 併發 多個執行緒訪問同乙份資源 確保資源安全 執行緒安全 synchronized 同步 1 同步塊 synchronized 引用型別 this 類.class 2 同步方法 public synchronized void test public class testsyn class t...

Java執行緒同步問題synchronized

android usb 讀寫以前都是一讀一寫,但有些機器會出問題。就採用讀寫非同步的方法。使用物件鎖,object自帶的,然後使用object的方法wait和notify notifyall 使用方法簡單,記錄下 public synchronized int lra setregister int...

Java 之 Java 位元組流

乙個流可以理解為乙個資料的序列。輸入流表示從乙個源讀取資料,輸出流表示向乙個目標寫資料。位元組流 參照物為自己的程式 什麼叫輸出?程式 檔案 輸出 什麼叫輸入?檔案 程式 輸入 位元組輸出流 output 寫檔案 outputstream 是抽象類,是所有輸出流的父類 一次寫入乙個位元組,乙個位元組...