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

帮忙看下这个代码为什么不执行多线程,该如何处理

2012-06-08 
帮忙看下这个代码为什么不执行多线程Java codepublic class TestThread1 {/*** @param args*/public stati

帮忙看下这个代码为什么不执行多线程

Java code
public class TestThread1 {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        Runner1 r = new Runner1();        //Thread t = new Thread();                r.start();                for(int i = 0; i < 100; ++i)        {            System.out.println("main thread:" + i);        }        }}class Runner1 extends Thread{    public void run()    {        for(int i = 0; i < 100; ++i)        {            System.out.println(i);        }    }}


[解决办法]
不会吧 , 代码没问题啊。
你是不是运行后 他们没有交叉执行?
这个很正常 , 因为你循环的次数只有100 , 你再运行几次试试。
[解决办法]
线程执行了,因为你只启用1个线程所以效果看不出来,你可以

Java code
    public void run()    {        for(int i = 0; i < 100; ++i)        {            sleep(1000);            System.out.println(i);        }    }
[解决办法]
不是这样写的
你对多线程理解反了
你这样想
Runnable是一个任务,比如一个类实现了一个任务,让这个类实现Runnable接口就表明这个任务有放在多线程里的可能。
Thread是一个线程,但没有任务,所以是一个空的线程。
new Thread(Runnable)就是把这个任务放进了线程里,让这个线程来执行这个任务,而不是由其它线程执行。
然后thread.start()就是把这个线程启动起来,线程就会执行任务了
这样理解就容易多了
[解决办法]
你这两段代码都是按线程执行的呀,,有啥问题呐?

(其中第1段代码,打印100次太少了,看不出效果,把它改成1000就可以看出效果了~~~)
[解决办法]
楼主怎么判断的程序没有多线程呢?1楼跟3楼实现没什么区别。
[解决办法]
不能光看结果,是cpu执行太快了,你在每个for循环里面sleep 个1毫秒看看,就会有效果了
[解决办法]
有交替打印

热点排行