各位高手:
    是这样的。小弟目前在学习多线程,然后呢,学得有点迷糊,忘各位不吝赐教。首先,我想问的是,10个同等优先级的线程,他们里面假设有for循环,如下所示
for (int i = 0; i < 10; i++) {
            System.out.println(i + " " + getName());}
那么我想问的是,他们是一个线程执行完毕,再执行另外的线程呢,还是这个线程执行到一定程度,会将运行权交给另外的线程来执行。像下面这个代码:
for (int i = 0; i < 10; i++) {
            System.out.println(i + " " + getName());
            try {
            sleep((int) Math.random() * 10);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
我知道是每个线程运行一会,但是想开始的那个代码,我就不知道到底是一个线程一次性执行完呢,还是一个线程运行一会,另一个线程再运行一会。

解决方案 »

  1.   

    我这里有一个主线程,然后new了10个这样的子线程
    比如
    public static void main(String[] rags) {
                    new MitiSay("A").start();
            new MitiSay("B").start();
            
        }
      

  2.   

    这就看你的sleep的时间设置了,看看这段代码:
    package tryTest;public class MyThread extends Thread { public static void main(String args[]) {
    MyThread[] t = new MyThread[10]; for (int i = 0; i < t.length; i++) {
    t[i] = new MyThread("MyThread" + i + "\t");
    t[i].start();
    try {
    Thread.sleep(100);
    } catch (Exception e) {
    e.printStackTrace();
    } }
    } String s; public MyThread(String s) {
    this.s = s; } public void run() {
    for(int i=0;i<10;i++){
    System.out.print("线程:"+s);
    }
    System.out.println();

    }
    }
      

  3.   

    for (int i = 0; i < 10; i++) {
                System.out.println(i + " " + getName());
                try {
                sleep((int) Math.random() * 10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }这里只有一个线程
      

  4.   

    我知道有了sleep之后,肯定是一个线程运行一下,另外的线程接着运行
    我的意思是说,要是没有sleep的话,那是一个线程运行完毕,再运行其他线程呢,还是一个线程运行一会,在没运行完毕的时候,就将运行权交给了其他线程
      

  5.   

    我这里有一个主线程,然后new了10个这样的子线程 
    比如 
    public static void main(String[] rags) { 
                    new MitiSay("A").start(); 
            new MitiSay("B").start(); 
            
        }