亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

基本代碼上顯示的讀/寫鎖與同步之間的區別

基本代碼上顯示的讀/寫鎖與同步之間的區別

慕婉清6462132 2022-05-12 15:35:22
在我的作業中,我需要展示代碼中讀/寫鎖和“同步”關鍵字使用之間的區別。我真的不知道該怎么做,以及理解這種差異的明確方法是什么。我還需要顯示以兩種方式執行同一任務的時間差。這是我嘗試過的代碼(雖然沒有同步)public class Main {    public static void main(String[] args) {        Number number = new Number(5);        Thread t1 = new Thread(){            public void run(){                System.out.println(number.getData());                number.changaData(10);                System.out.println(number.getData());            }};            Thread t2 = new Thread(){                public void run(){                    try {                        Thread.sleep(1000);                    } catch (InterruptedException e) {                        // TODO Auto-generated catch block                        e.printStackTrace();                    }                    System.out.println(number.getData());                    number.changaData(20);                    System.out.println(number.getData());                }};                t2.start();                t1.start();    }}public class Number {    private final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();    private final Lock readLock = rwl.readLock();    private final Lock writeLock = rwl.writeLock();    int value;    public Number(int value) {        this.value = value;    }    public int getData() {        readLock.lock();        try {            return value;        }        finally {            readLock.unlock();        }    }    public int changaData(int change) {        writeLock.lock();        try {            value = change;            return value;        }        finally {            writeLock.unlock();        }    }}
查看完整描述

1 回答

?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

同步鎖和讀/寫鎖之間的區別在于,當您使用同步鎖時,它一次只允許一個線程訪問。使用讀/寫鎖,您可以同時擁有多個讀取器(假設已經沒有寫鎖),因此您可以在某些情況下獲得更好的并發性能,尤其是當這里有很多讀取時。

您應該添加更多訪問此對象的線程以測試性能。

您可以簡單地計算完成和開始操作之間的時間來衡量性能(例如 - Long startTime = System.nanoTime();)。


查看完整回答
反對 回復 2022-05-12
  • 1 回答
  • 0 關注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號