首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2011-12-08 
[求助]为什么程序不输出run()方法内容?同一个包下有如下2个类:为什么程序的输出没有m0m1m2m3m4m5m6m7m8m9m

[求助]为什么程序不输出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 所以为空啊。

热点排行