Fizz Buzz Problem
This problem explores a multi-threaded solution to the very common Fizz Buzz programming task
We'll cover the following...
Problem
FizzBuzz is a common interview problem in which a program prints a number series from 1 to n such that for every number that is a multiple of 3 it prints "fizz", for every number that is a multiple of 5 it prints "buzz" and for every number that is a multiple of both 3 and 5 it prints "fizzbuzz". We will be creating a multi-threaded solution for this problem.
Suppose we have four threads t1, t2, t3 and t4. Thread t1 checks if the number is divisible by 3 and prints fizz. Thread t2 checks if the number is divisible by 5 and prints buzz. Thread t3 checks if the number is divisible by both 3 and 5 and prints fizzbuzz. Thread t4 prints numbers that are not divisible by 3 or 5. The workflow of the program is shown below:
The code for the class is as follows:
class MultithreadedFizzBuzz {
def initialize(n)
@n = n
end
def fizz
puts "fizz"
end
def buzz
puts "buzz"
end
def fizzbuzz
puts "fizzbuzz"
end
def Number()
puts "#{@num}"
end
}
For an input integer n, the program should ...