Enhancement note: Usage of synchronized keyword where not needed can cause significant performance loss as threads wait for each other and mutexen must be locked/unlocked.
TODO: Test for java.util.ConcurrentModificationException after removing synchronized from methods and then blocks.
Enhancement note: Usage of synchronized keyword where not needed can cause significant performance loss as threads wait for each other and mutexen must be locked/unlocked.
TODO: Test for java.util.ConcurrentModificationException after removing synchronized from methods and then blocks.