java 多线程。 编写10个线程,第一个线程从1加到10,第二个线程第11加到20,。。。第10个线程从91加到100.最够把10个线程结果相加

这篇博客讨论了在Java中使用多线程进行连续加法操作的难点。通过创建10个线程,每个线程负责一个特定的数字区间,如第1个线程加1到10,最后将所有线程结果相加。博主指出,仅使用`Thread.sleep(100)`无法确保线程执行顺序,建议使用`.join()`方法来确保线程按顺序执行。此外,还提及了线程优先级的设置可能影响执行顺序,但这种方式并不总是可靠,`join()`方法是更为通用的解决方案。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值