Java无穷流(Infinite Stream),多线程生成Number流并且计算最后30个元素?

Using Java, write a program that calculates the average, minimum, maximum and most frequent value for the last 30 numbers of an infinite stream of numbers produced by “n” threads that generate random numbers between the values of 1 to 10.

You should create the following:
● The threads that generate the random numbers.
● The inter thread communication method. This must use classes that are part of the
Java standard library or a third party concurrency library (such as Google Guava
Concurrency).
● A main method to run the program that lets a user specify the number of random
number generation threads.
You should also include with your answer a brief explanation/justification of the design choices that you have made.

全英文,不方便理解题目意思哦。
可以的话,翻译成中文题目吧