I have a list of Thread objects being passed a BoundedSemaphore. These threads are each started and joined on. As part of the run() process, each acquires a semaphore lock, runs