[Assignment Problem] Multi-threaded Series Printer

Problem

Write a multi-threaded program to print data from four series of data in alternating order.

There are four series of data are as below:

Series 1:              0,            4,            8,            12,          …

Series2:               1,            5,            9,            13,          …

Series3:               2,            6,            10,          14,          …

Series4:               3,            7,            11,          15,          …

Each series is an inifinte set of data.

 

Input and Output

Inputs to program will be:

  • Arg 0: No of threads to be spawned by program.

  • Arg1: No of entries to be printed for each series

Expected Output:

  • Data from series in alternating order. The output shown will be also in ascending order as well with no data repeating.

 

Sample Inputs and Outputs

Arg0

Arg1

Expected Output

Note

1

4

0,4,8,12

One thread will be spawned which prints data from Series1 only

3

4

0,1,2,4,5,6,8,9,10,12,13,14,15

Thread threads will be spawned which will print data from Series1,2 and 3 in alternating order

4

2

0,1,2,3,4,5,6,7

Four threads will be spawned and prints data from all series alternatively

2

2

0,1,4,5

Two threads will be spawned which prints data alternatively

 

Note: 

  • Each thread can print only data from one series. For eg:, thread1 will print data of series1,thread2 will print data of series2 and so on.

  • Thread ‘n’ should print data belonging to series n only.

  • A thread which prints data from one series should not print data belonging to any other series.

  • After printing one output, the same thread should print only after other threads print output from their respective series

 

Additional Notes

  • If any information which is needed for solving the problem is missing, properly state the assumptions.

  • Minimal unit test suite also should be included, which could be run to verify successful running condition and a failure condition.

  • Try to make the code as extensible as possible.

  • The program should not depend on third party libraries, Java EE libraries etc.

Search the Web

Custom Search

Searches whole web. Use the search in the right sidebar to search only within javajee.com!!!