douglascraigschmidt / LiveLessons

This repository contains all the source code examples from my LiveLessons course on "Java Concurrent Programming" and my various LiveTraining courses, as described at http://www.dre.vanderbilt.edu/~schmidt/DigitalLearning.
596 stars 665 forks source link

OneShotExecutorService Question #1

Open glideken opened 9 years ago

glideken commented 9 years ago

Great lectures! This is not an issue but just a question that came to mind while reading OneShotExecutorService...

In OneShotExecutorService:processQueuedResults(), are having getQueue().take() in L196 and t.join() in L212 sufficient to ensure the tasks are finished than to also callCountDownLatch mExitBarrier.await() in L152? In other words, is the CountDownLatch necessary?

AmazingDonut commented 8 years ago

Valid point, OneShotExecutorService:processQueuedResults() will return once it processes all results from the queue which in turn will only have all results after all threads have completed.