執行緒同步塊跟同步方法的區別

2021-07-02 12:09:20 字數 995 閱讀 1129

同步**塊,

當多個執行緒訪問同一物件object中的synchronized (this)時,同一時刻只能乙個執行緒訪問synchronized (this)同步**塊中內容,其他執行緒可以訪問該object中非synchronized (this)同步**塊,最關鍵的是,其他執行緒在乙個執行緒訪問同步**塊時,只能等待,被阻塞在同步**塊前。當該執行緒訪問結束,其他執行緒才能獲取訪問同步**塊的許可權。

package com.my.thread;

public class ticket implements runnable catch (exception e)

system.out.println(thread.currentthread().getname()+"賣票:"+count--);}}

} }public static void main(string args)

}

輸出:執行緒a----

執行緒c----

執行緒b----

執行緒a賣票:5

執行緒a----

執行緒a賣票:4

執行緒a----

執行緒b賣票:3

執行緒b----

執行緒c賣票:2

執行緒c----

執行緒b賣票:1

執行緒b----

執行緒b----

執行緒b----

執行緒b----

執行緒b----

執行緒b----

執行緒b----

執行緒b----

執行緒a----

執行緒a----

執行緒a----

執行緒a----

執行緒a----

執行緒a----

執行緒a----

執行緒c----

執行緒c----

執行緒c----

執行緒c----

執行緒c----

執行緒c----

執行緒c----

執行緒c----

執行緒同步 執行緒同步跟Runnable的區別

執行緒同步 建立多條執行緒,要一條執行緒執行完run 方法,下乙個執行緒才能進入run 方法,執行緒同步就是為了避免同一條件下不允許多條執行緒同時進入而製造出來的方法。runnable跟同步的區別 runnable在同一條件下可以同時進入多條執行緒,而同步不行,runable資料共享。例子,售票台有...

同步塊與同步方法區別示例

示例 public class synctest public static void test1 catch interruptedexception e system.err.println system.err.println test1 public static synchronized ...

執行緒同步的方法

一 執行緒同步的方法 1 reentrantlock a 加鎖 reentrantlock lock new reentrantlock finally b condition variable condition fund finally 2 synchronized a 加鎖 synchroni...