小妹初学java,多线程就是弄不明白,感觉很乱,理不清。那位高手指点一下,最好举个例子。谢谢了!

解决方案 »

  1.   

    多线程就是同时执行几个线程。一般的程序只有一个 main方法 也就是只有一个线程做作主线程。
    如果你用 Thread类多开个线程(比如叫线程A)  就会同时执行这两个进程(互相不影响)
    主线程和A线程同时执行(其实他们是共同分享CPU的时间片)
    比如以下程序 看结果  
    public class TestThread implements Runnable
    {
        public static void main(String args[])
       {
           Thread t=new Thread(new TestThread());
           t.start();
           int i = 0;
           while (i<1000) {
               System.out.println("我是主线程");
               i++;
           }
       }
       public void run()
       {
           int i=0;
           while (i<1000)
           {
                System.out.println("我是新线程");
                i++;
            }   }
    }
      

  2.   

    我是主线程
    我是新线程
    交替的出现  说明 主线程和新线程同时在执行  占有CPU的时间片
      

  3.   

    不好意思,问一下一楼,start()方法不是就调用run()方法了吗?为什么会先打印出“我是主线程”呢?
      

  4.   

    还有,主线程先开始,又最后结束,它不用sleep()方法规定结束时间吗?
      

  5.   

    主线程是先开始,但是不一定最后结束
    主线程优先级是5,虽然是5,但是比较霸道,分配给它资源机会多一些t.start()虽然顺序在先,但是不一定先得到机会执行
    就是说,你只能操作让它执行,至于什么时候执行就是系统的事情了sleep()方法是使当前线程休息指定时间,不用它结束
    各个线程执行玩后,自动就结束了你对线程各个概念了解不是很深刻,建议多看看一些简单例题加深理解
      

  6.   

    多线程的概念可以跟多进程的概念对比着来理解多线程是一个进程可以派生多个线程去处理多个事务,实际上是多个任务存在于一个进程空间的的东西,基本上只有windows上跟一下支持多线程的操作系统才有这个概念,Linux下讲的都是多进程多进程就象是你一个软件打开多次的情况,有各自的运行空间与完全隔开的任务列表等多线程与多进程最大的区别是多线程启动的时候是在一个进程空间里面的,因此不用再在启动的时候做很多准备工作但多进程基本上是每次启动的时候必须先做很多重头开始的初始化工作