java怎么用多线程并发运行for?

如果把下面的改成十个线程并发运行不同的for语句,,就我最下面写好的那个方法,参数用定义好的数组里面的十个int变量,请问要怎么写?

 public static void main(String[] args) {   
            for(Thread t:getThreads()){
                t.start();
            }
        }
        public static Thread[] getThreads(){
            Thread[] thread = new Thread[10];
            for(int i=0;i<10;i++){
                final Integer num = new Integer(i);
                thread[i] = new Thread(new Runnable(){
                    public void run() {
                        int j=5;
                        while(j-->0){                       
                            System.out.println("this is thread"+num);   
                        }                                   
                    }
                });
            }
            return thread;
        }

        public static void  bbq(int a){
            for(int b=a;b<a+2;b++){
                System.out.println("for循环"+"起始值为"+a+"终止值为"+(a+2));
            }
            }

2个回答

 for(Thread t:getThreads()){
                t.start();
            }
                        因为线程执行时间太短了,用循环模拟不出效果来。
                        改成下面的方式
    Thread[] thread =getThreads()   ;
    thread[0].start();
    thread[1].start();
    thread[2].start();
    thread[3].start();
    thread[4].start();
qq_27368885
qq_27368885 嗯,然后每个线程分别运行bbq(1),bbq(2),1-9十个变量存在int数组里面,j作为数组下标去调用,,这怎么写?
5 年多之前 回复
danielinbiti
danielinbiti 回复qq_27368885: public void run() { int j=5; bbq(j); } 这个效果?
5 年多之前 回复
qq_27368885
qq_27368885 回复qq_27368885: 然后控制台打印出哪个线程在做什么样的for循环,,
5 年多之前 回复
qq_27368885
qq_27368885 那个,,这个应该不是我想要的,,我目的是想把run方法里面的while循环语句改成运行bbq方法里面的for语句,,
5 年多之前 回复
 public class MyThread extends Thread{
    private int num = 0;
    public MyThread(Integer num){
        this.num = num;
    }
    public void run(){
        bbq(num);
    }
    public static MyThread[] getThreads(){
        MyThread[] thread = new MyThread[10];
        for(int i=0;i<10;i++){
            thread[i] = new MyThread(i);
        }
        return thread;
    }

    public static void  bbq(int a){
        for(int b=a;b<a+2;b++){
            System.out.println("for循环"+"起始值为"+a+"终止值为"+(a+2));
        }
    }
    public static void main(String[] args) {
        for(Thread t:getThreads()){
            t.start();
        }
    }

}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问