import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; class SharedResource { private int sharedVariable; public synchronized void increment() { sharedVariable++; } public synchronized int getSharedVariable() { return sharedVariable; } } class WorkerThread implements Runnable { private SharedResource sharedResource; public WorkerThread(SharedResource sharedResource) { this.sharedResource = sharedResource; } public void run() { for (int i = 0; i < 1000; i++) { sharedResource.increment(); } } } public class Main { public static void main(String[] args) { int numberOfThreads = 5; ExecutorService executorService = Executors.newFixedThreadPool(numberOfThreads); SharedResource sharedResource = new SharedResource(); for (int i = 0; i < numberOfThreads; i++) { Runnable workerThread = new WorkerThread(sharedResource); executorService.execute(workerThread); } executorService.shutdown(); try { executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Shared variable value: " + sharedResource.getSharedVariable()); } }


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