编写多线程程序

qq_41335523 2018-07-06 03:26:35
编写多线程程序,创建 10 个线程,每个线程完成一个计算任务,各
个线程的计算任务是类似的:比如,从 1 加到 10(或从 1 乘到 10),从
11 加到 20(或从 11 乘到 20),…..,从 91 加到 100(或从 91 乘到 100)。
会用 for 循环创建这 10 个线程对象,用构造方法传入的参数来确定
各个线程的计算任务。
...全文
159 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_41335523 2018-07-08
  • 打赏
  • 举报
回复
为什么结果都多加了一 怎么改
java-小学生 2018-07-07
  • 打赏
  • 举报
回复
测试类:
public class Day0707 {
public static void main(String[] args) {
for (int i = 0, j = 1; i < 10 && j < 100; i++, j = j + 10) {
Task task1 = new Task(j, j + 9, "+");
Thread t = new Thread(task1);
t.start();
}
for (int i = 0, j = 1; i < 10 && j < 100; i++, j = j + 10) {
Task task1 = new Task(j, j + 9, "*");
Thread t = new Thread(task1);
t.start();
}
}
}




线程任务类:
public class Task implements Runnable {

private int began;
private int end;
private String flag;

public Task(int began, int end, String flag) {
this.began = began;
this.end = end;
this.flag = flag;
}

@Override
public synchronized void run() {
if (flag.equals("+")) {
int result = began;
for (int i = began; i <= end; i++) {
result = result + i;
}

System.out.println(Thread.currentThread().getName() + "..." + began + "..." + end + "..." + flag + "..." + result);
} else if (flag.equals("*")) {
Long result = (long) began;
for (int i = began; i <= end; i++) {
result = result * i;
}
System.out.println(Thread.currentThread().getName() + "..." + began + "..." + end + "..." + flag + "..." + result);
}


}
}



有问题请指出

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧