public class Main {//Main 类:该类包含 main() 方法,用于启动四个线程并打印最终的数字总和。 public static void main(String [] args) { A a = new A(); B b = new B(); C c = new C(); D d = new D(); /*A、B、C、D 类:这些类都继承自 Java 中的 Thread 类,并实现了 run() 方法。 每个 run() 方法中的循环计算了对应部分数字的总和,并将其保存在 sum 变量中。 */ a.start(); b.start(); c.start(); d.start(); try { c.sleep(1000); } catch(Exception e1){ } System.out.println(a.getNumber()+b.getNumber()+c.getNumber()+d.getNumber()); } } class A extends Thread{ private int sum; @Override public void run() { for(int i=1;i<=25;i++) { sum += i; } } public int getNumber() {//getNumber() 方法:这些方法用于返回对应线程计算的数字总和 return sum; } } class B extends Thread{ private int sum; @Override public void run() { for(int i=26;i<=50;i++) { sum += i; } } public int getNumber() { return sum; } } class C extends Thread{ private int sum; @Override public void run() { for(int i=51;i<=75;i++) { sum += i; } } public int getNumber() { return sum; } } class D extends Thread{ private int sum; @Override public void run() { for(int i=76;i<=100;i++) { sum += i; } } public int getNumber() { return sum; } }逐行解释
时间: 2023-06-14 18:08:27 浏览: 83
简 单 的 Java程 序
这段代码是一个使用多线程计算数字总和的示例。
首先是主类 Main,其中 main 方法创建了四个线程 A、B、C、D,并分别启动它们。然后调用 c.sleep(1000) 让线程 C 休眠 1 秒,等待其他线程完成计算。最后将四个线程计算出来的数字总和相加并打印出来。
接下来是四个继承自 Thread 类的子类 A、B、C、D,它们都实现了 run 方法,其中循环计算了对应部分数字的总和,并将其保存在 sum 变量中。每个子类还提供了一个 getNumber 方法,用于返回对应线程计算的数字总和。
这段代码使用了多线程,可以提高计算效率,但需要注意线程安全问题。另外,使用 sleep 方法让线程等待并不是一个好的实践,更好的方式是使用 join 方法让线程等待。
阅读全文