题目:系统随机生成10000个数,构造5个线程并利用它们的Join方法计算这些随机数的最大值。
思想:
1、用Thread子类和Runnable实现类的方法编写多线程类区别在于一个为继承类一个为实现类;
2、要实现线程中循环100次,每次循环中线程休眠10秒内的任意时间,休眠完成后打印出线程名称、休眠时间和第几次执行,因此在两个类中public void run()函数中编写相应在线程运行后的执行过程;
源代码:
solveMaxThr.java
package threadJoin;
/**
* @author TX
* @version 创建时间:2016年12月4日 下午12:34:43
* 构造线程生成随机数,并利用Join方法计算这些数的最大值
*/
public class solveMaxThr{
static int maxNum = 0;
public static int getMaxNum() {
return maxNum;
}
public static class MaxThr extends Thread
{
public void run()
{
for(int i = 0; i < 2000; i++)
{
int rand = (int)(Math.random()*10000);
if(rand > maxNum) maxNum = rand;
}
}
}
public static void main(String[] args)
{
MaxThr mt1 = new MaxThr();
MaxThr mt2 = new MaxThr();
MaxThr mt3 = new MaxThr();
MaxThr mt4 = new MaxThr();
MaxThr mt5 = new MaxThr();
mt1.start();
mt2.start();
mt3.start();
mt4.start();
mt5.start();
try {
mt1.join();
mt2.join();
mt3.join();
mt4.join();
mt5.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("The max of 10000 numbers is " + getMaxNum());
}
}