//郑州轻工业大学
//题号:实验三 第一题
//题目: 我们使用的计算机系统就是一个多线程程序,我们在编辑文档时,可以同时听音乐、看视频,桌面右下角的时钟会不断更新最新时间,这些都是多线程给我们带来的好处。请实现一个多线程程序,分别使用Thread类和Runnable接口求一个整数序列中的最大者,其中,一个线程用来求前n个数的最大者,另一个线程用于更新界面把当前求的最大者显示出来。要求:每隔5秒求一次前n个数的最大者,然后再隔5秒求前n+1个数的最大者,依次类推,并以图形化形式实时显示运行结果。
————————————————————————————————
示例图
每5秒更新一下数据
方法如下
设计先设计一个显示的界面
一个用于显示最大值的线程
public void run() { //用于显示最大值
while (true) {
max.setText(String.valueOf(a)); //max标签中加入最大值a
try {
sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
一个用于更新的内部线程
class MyThred extends Thread { //用于筛选最大值
public MyThred() {
}
public void run() {
//创建一个集合,利用集合的Collections.max方法,直接筛选出最大值
List<Integer> input = new ArrayList<Integer>();
for (int i = 0; true; i++) {
input.add(i);
a = Collections.max(input);
try {
sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
很简单适合新手学习或者交作业
完整代码:https://download.csdn.net/download/muMason/44756801
超链接:完整代码
新人制作不易,真的是一个bug改一天!