Example solution using threads - note the (valid) use of blocking in the threads

Wiki pages

Sort by: Score, Alphabetical, Date