在我的作業中,我需要展示代碼中讀/寫鎖和“同步”關鍵字使用之間的區別。我真的不知道該怎么做,以及理解這種差異的明確方法是什么。我還需要顯示以兩種方式執行同一任務的時間差。這是我嘗試過的代碼(雖然沒有同步)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(); } }}
基本代碼上顯示的讀/寫鎖與同步之間的區別
慕婉清6462132
2022-05-12 15:35:22