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

小弟初接触多线程,这段代码的输出不懂,该怎么解决

2012-01-23 
小弟初接触多线程,这段代码的输出不懂Java codepublic class MultThread extends Thread{String name//初

小弟初接触多线程,这段代码的输出不懂

Java code
public class MultThread extends Thread{    String name;    //初始化name变量    public MultThread(String name){        this.name=name;    }    //线程    public void run(){        try {            Thread.sleep(5000);        } catch (InterruptedException e) {            System.out.println("Interrupt exception");            // TODO Auto-generated catch block            e.printStackTrace();        }        System.out.println("thread name: "+name);    }    /**     * @param args     */    public static void main(String[] args) {        // TODO Autgenerated method stub        //创建多个线程        MultThread mt1=new MultThread("one");        MultThread mt2=new MultThread("two");        MultThread mt3=new MultThread("three");        mt1.start();        mt2.start();        mt3.start();        }    }输出结果是thread name: onethread name: threethread name: two




难道不应该输出,one two three么

[解决办法]
多输出几次你会发现不是固定的。
[解决办法]
这个是并发的,main是一个线程,还有你的3个线程,并发(不是同时)运行。我也不是特别懂,期待哪位大牛给解释一下。
[解决办法]
线程的特点,启动后由虚拟机进行调度(java是抢占式的),所以输出不会固定的,多运行几次就能发现。
[解决办法]
这个就是多线程的特点了,运行的次序不是固定的。
[解决办法]
多运行几次,你会发现现线程是抢占资源的,具有随意性,并不会按照你的顺序执行

热点排行