Skip to content

Instantly share code, notes, and snippets.

@msiemens
Last active August 29, 2015 14:13
Show Gist options
  • Save msiemens/f5f6ef97163087e51fd3 to your computer and use it in GitHub Desktop.
Save msiemens/f5f6ef97163087e51fd3 to your computer and use it in GitHub Desktop.
import java.util.ArrayList;
class SyncedExample extends Thread {
private static int counter = 0;
private static final Object lock = new Object();
public static void main(String[] args) throws Exception {
ArrayList<SyncedExample> threads = new ArrayList<SyncedExample>();
// Create 10 threads
for (int i = 0; i < 10; i++) {
SyncedExample thread = new SyncedExample();
thread.start();
threads.add(thread);
}
// Wait for all threads to finish
for (SyncedExample thread : threads) {
thread.join();
}
System.out.println(counter);
}
// The function that will be called in each thread
public void run() {
for (int i = 0; i < 100_000; i++) {
synchronized(lock){
counter += 1;
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment