This is an example implementation of a Bakery Lock in Java for n threads. The example execution scenario with n threads counts to n * 10000 using a shared variable with each thread incrementing the variable 10000 times.
- Clone locally via GitHub Desktop, or via CLI:
git clone https://github.com/svondenstein/BakeryExample.git
- Compile the source files in src/:
javac *.java
- Run BakeryExample:
java BakeryExample
- Enter the number of threads you wish to execute (running with a higher thread count may take longer depending on your machine)
- The program will execute the counting example and will output the highest value each thread wrote to the shared variable.
The code in class ThreadID is not mine, and was given in the textbook The Art of Multiprocessor Programming by Maurice Herlihy & Nir Shavit. This program was created as an assignment for CSC 4585 - Multicore Programming at LSU.