多线程的题目有点不懂,求助求助

lwjppz 2019-04-15 01:08:14
求助怎么写,不太懂多线程
...全文
115 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwjppz 2019-04-15
  • 打赏
  • 举报
回复
引用 2 楼 qps2009 的回复:
public class MyThread implements Runnable {
    private String name;
    private int index;
    private int length;
    public MyThread(String name,int index,int length){
        this.name=name;
        this.index=index;
        this.length=length;
    }

    @Override
    public void run() {
        for (int i = this.index; i < this.index + this.length; i++) {
            System.out.println(this.name+":"+i);
        }
    }
}
public class Test {

    public static void putOut(int n,int m){
        for(int i=1;i<=m;i++){
            Thread t = new Thread(new MyThread("第" + i + "个线程", (1 + (n / m) * (i - 1)), n / m));
            t.start();
            try {
                t.join();//使用join()使线程按顺序执行
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args){
        putOut(20,5);
    }
}
输出结果
第1个线程:1
第1个线程:2
第1个线程:3
第1个线程:4
第2个线程:5
第2个线程:6
第2个线程:7
第2个线程:8
第3个线程:9
第3个线程:10
第3个线程:11
第3个线程:12
第4个线程:13
第4个线程:14
第4个线程:15
第4个线程:16
第5个线程:17
第5个线程:18
第5个线程:19
第5个线程:20
谢了
qps2009 2019-04-15
  • 打赏
  • 举报
回复
public class MyThread implements Runnable {
    private String name;
    private int index;
    private int length;
    public MyThread(String name,int index,int length){
        this.name=name;
        this.index=index;
        this.length=length;
    }

    @Override
    public void run() {
        for (int i = this.index; i < this.index + this.length; i++) {
            System.out.println(this.name+":"+i);
        }
    }
}
public class Test {

    public static void putOut(int n,int m){
        for(int i=1;i<=m;i++){
            Thread t = new Thread(new MyThread("第" + i + "个线程", (1 + (n / m) * (i - 1)), n / m));
            t.start();
            try {
                t.join();//使用join()使线程按顺序执行
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args){
        putOut(20,5);
    }
}
输出结果
第1个线程:1
第1个线程:2
第1个线程:3
第1个线程:4
第2个线程:5
第2个线程:6
第2个线程:7
第2个线程:8
第3个线程:9
第3个线程:10
第3个线程:11
第3个线程:12
第4个线程:13
第4个线程:14
第4个线程:15
第4个线程:16
第5个线程:17
第5个线程:18
第5个线程:19
第5个线程:20
十八道胡同 2019-04-15
  • 打赏
  • 举报
回复

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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