当前位置: 代码迷 >> J2SE >> [求援]为什么程序不输出run()方法内容
  详细解决方案

[求援]为什么程序不输出run()方法内容

热度:315   发布时间:2016-04-24 13:07:27.0
[求助]为什么程序不输出run()方法内容?
同一个包下有如下2个类:
为什么程序的输出没有
m0m1m2m3m4m5m6m7m8m9
m10m11m12m13m14m15m16m17m18m19
m0m1m2m3m4m5m6m7m8m9
m10m11m12m13m14m15m16m17m18m19
而只是输出:
主线程的优先级是3
线程t1的优先级是5
线程t2的优先级是5
Java code
public class Machine implements Runnable{    static StringBuffer log = new StringBuffer();    public void run() {        // TODO Auto-generated method stub        int count =0;        for(int i=0;i<20;i++){            log.append("m"+i);            if(++count%10==0){log.append("\n");}        }    }}

Java code
public class Test implements Runnable{    static StringBuffer log = new StringBuffer();    public void run() {        // TODO Auto-generated method stub        int count =0;        for(int i=0;i<20;i++){            log.append(Thread.currentThread().getName()+":m"+i);            if(++count%10==0){log.append("\n");}        }    }        public static void main(String[] args) throws InterruptedException {        Machine machine1 = new Machine();        Machine machine2 = new Machine();        Thread t1 = new Thread(machine1);        Thread t2 = new Thread(machine2);        t1.setName("t1");        t2.setName("t2");        Thread main = Thread.currentThread();        main.setPriority(3);        System.out.println("主线程的优先级是"+main.getPriority());        System.out.println("线程t1的优先级是"+t1.getPriority());        System.out.println("线程t2的优先级是"+t2.getPriority());        t1.setPriority(Thread.MIN_PRIORITY);        t2.setPriority(Thread.MAX_PRIORITY);        t1.start();        t2.start();        Thread.sleep(500);        System.out.println(log);    }}


------解决方案--------------------
因为你的 log 是 Test 中 
 static StringBuffer log = new StringBuffer();
的log 所以为空啊。
  相关解决方案