java 基础教材中多线程一章 我觉得 难 的一个问题。
首先 要用多线程实现 。 因此要有类继承 Thread 或者 实现 Runable。
由于 每个线程 的 操作数 不一样 我生成了十个不同对象的线程。
public class HomeWork6_4_1 {
public static void main(String[] args) throws InterruptedException {
for(int i=0; i<10; i++) {
Add add = new Add(i*10+1, i*10+10);
add.start();
}
Thread.sleep(100); // 休眠 一会 以便 其他线程执行完 不然 主线程执行到输出语句时 其他线程可能还未执行完毕
System.out.println(Add.sub);
}
}
class Add extends Thread{
static Object object = new Object(); // 同步代码块锁
static int sub; // 类属性 用于保存线程相加结果
private int min; // 传过来数据的 最小值
private int max; // 最大值
public Add(int min, int max) {
this.min = min; // 对象属性赋值
this.max = max; // 对象属性赋值
}
public void run() {
int res = 0;
for(int i=min; i<=max; i++) {
res += i; // 执行 从 min 加到 max
}
// 同步代码块 同一时刻只有一个 线程可以 调用该代码块内内容
synchronized (object) {
System.out.println(Thread.currentThread().getName