import java.util.concurrent.locks.ReentrantLock; public class SharedResource { private int value; private ReentrantLock lock; public SharedResource() { value = 0; lock = new ReentrantLock(); } public void increment() { lock.lock(); try { value++; } finally { lock.unlock(); } } public int getValue() { return value; } } public class ConcurrentTask implements Runnable { private SharedResource sharedResource; public ConcurrentTask(SharedResource sharedResource) { this.sharedResource = sharedResource; } @Override public void run() { sharedResource.increment(); } } public class Main { public static void main(String[] args) throws InterruptedException { SharedResource sharedResource = new SharedResource(); Thread thread1 = new Thread(new ConcurrentTask(sharedResource)); Thread thread2 = new Thread(new ConcurrentTask(sharedResource)); thread1.start(); thread2.start(); thread1.join(); thread2.join(); System.out.println("Final value: " + sharedResource.getValue()); } }


上一篇:
下一篇:
切换中文