编写四个多线程

编写4个线程,第一个线程从1加到25,第二个线程从26加到50,第三个线程从51加到75,第四个线程从76加到100,最后再把四个线程计算的结果相加。

class Text1 extends Thread{
    private int sum;
    public void run()
    {
        for(int i=1;i<=25;i++)
        {
            sum+=i;
        }
    }
    public int getNumber()
    {
        return sum;
    }
}
class Text2 extends Thread{
    private int sum;
    public void run()
    {
        for(int i=26;i<=50;i++)
        {
            sum+=i;
        }
    }
    public int getNumber()
    {
        return sum;
    }
}
class Text3 extends Thread{
    private int sum;
    public void run()
    {
        for(int i=51;i<=75;i++)
        {
            sum+=i;
        }
    }
    public int getNumber()
    {
        return sum;
    }
}
class Text4 extends Thread{
    private int sum;
    public void run()
    {
        for(int i=76;i<=100;i++)
        {
            sum+=i;
        }
    }
    public int getNumber()
    {
        return sum;
    }
}
public class Main{
    public static void main(String[] args)
    {
        Text1 a=new Text1();
        Text2 b=new Text2();
        Text3 c=new Text3();
        Text4 d=new Text4();
        a.start();
        b.start();
        c.start();
        d.start();
        //休眠,四个线程运行完休眠再运行主线程;sleep是静态方法,最好用Thread.sleep();
        try{
            Thread.sleep(1000);
        }catch(InterruptedException e1)
        {}
        
            System.out.println(a.getNumber()+b.getNumber()+c.getNumber()+d.getNumber());
    }
}
class Count extends Thread{
	
	int start;

	Count(int start) {
		this.start = start;
	}

	@Override
	public synchronized void run() {
		for (int i = start; i < start + 25; i++) {
			Main.sum += i;
		}
	}
}
public class Main{
	public static int sum = 0;
	public static void main(String[] args) {
		Count count1 = new Count(1);
		Count count2 = new Count(26);
		Count count3 = new Count(51);
		Count count4 = new Count(76);
//用join();不用休眠
        try{
		count1.start();
		count1.join();
		count2.start();
		count2.join();
		count3.start();
		count3.join();
		count4.start();
		count4.join();
        }
        catch(InterruptedException e)
        {
            e.printStackTrace();
        }
		System.out.println(sum);
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值