隨筆-4  評(píng)論-15  文章-0  trackbacks-0

          此時(shí)程序中最多有幾個(gè)存活的線程,個(gè)人認(rèn)為應(yīng)該是4個(gè),怎么就是看不到是4個(gè)的結(jié)果呢?
          package Test;

          public class Testthread{
               public static void main(String[] args){

                //測(cè)定當(dāng)前活動(dòng)的線程數(shù)目 肯定有一個(gè)主線程在運(yùn)行
                System.out.println("=========header========"+Thread.activeCount());
                ThreadTest tt=new ThreadTest();  
                RunTest rt=new RunTest();
          //在下面新建線程里被啟動(dòng)

                new Thread(rt).start();      //新建立的一個(gè)線程 啟動(dòng)
                tt.start();                        //已經(jīng)建立的線程 啟動(dòng)
                System.out.println("===========footer======"+Thread.activeCount());
           }
          }
          class ThreadTest extends Thread{
           public void run(){
            System.out.println("==========I'm over thread=========");
           }
          }

          class RunTest implements Runnable{
           public void run(){
            System.out.println("==========I'm over runnable==========");
           }
          }


          打印結(jié)果:
          第一類結(jié)果 (次序有時(shí)不同)
          =========header========1
          ===========footer======3
          ==========I'm over thread=========
          ==========I'm over runnable==========

          第二類結(jié)果
          =========header========1
          ==========I'm over runnable==========
          ===========footer======2
          ==========I'm over thread=========


          posted on 2009-04-24 15:04 王業(yè)平 閱讀(1171) 評(píng)論(6)  編輯  收藏

          評(píng)論:
          # re: 關(guān)于多線程的問題 高手指點(diǎn) 2009-04-24 15:47 | shivaree
          footer 和 header 是main線程 , over thread 和 over runnable是支線程, 三個(gè)啊。   回復(fù)  更多評(píng)論
            
          # re: 關(guān)于多線程的問題 高手指點(diǎn) 2009-04-24 16:07 | 5452
          類運(yùn)行時(shí),main函數(shù)是入口,所以運(yùn)行時(shí),首先是建立了一個(gè)屬于main的線程,然后才是new Thread(rt).start(); tt.start(); 的運(yùn)行,也就是說此時(shí)最多有三個(gè)線程。樓主的四個(gè)線程是怎么想的我不知道。   回復(fù)  更多評(píng)論
            
          # re: 關(guān)于多線程的問題 高手指點(diǎn) 2009-04-24 16:14 | 王業(yè)平
          RunTest 不還是一個(gè)線程嗎?
          ==========I'm over runnable==========
          不就是它打印的結(jié)果嗎,我用藍(lán)色字體標(biāo)明了的  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于多線程的問題 高手指點(diǎn)[未登錄] 2009-04-24 16:41 | smile
          RunTest rt=new RunTest();
          new Thread(rt).start();

          上面啟動(dòng)的是一個(gè)線程,實(shí)現(xiàn)了Runnable但是不放到線程里面執(zhí)行是不會(huì)產(chǎn)生新的線程的。  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于多線程的問題 高手指點(diǎn) 2009-04-24 16:49 | 王業(yè)平
          rt 不是已經(jīng)放到線程里面了嗎
          說明白點(diǎn)吧  回復(fù)  更多評(píng)論
            
          # re: 關(guān)于多線程的問題 高手指點(diǎn) 2009-06-18 08:08 | zeaster
          //此處不會(huì)啟動(dòng)新線程,因?yàn)镽unTest只是個(gè)Runnable,不是Thread
          RunTest rt=new RunTest();

          // 此處會(huì)啟動(dòng)一個(gè)線程,這個(gè)線程使用實(shí)現(xiàn)Runnable接口的rt
          new Thread(rt).start();

          所以上面2行,只啟動(dòng)一個(gè)線程
          程序里一共3個(gè)
            回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 梓潼县| 平顶山市| 南木林县| 临沭县| 上杭县| 阿勒泰市| 大田县| 元氏县| 许昌市| 济南市| 洱源县| 沙河市| 宁武县| 额尔古纳市| 浦东新区| 临沭县| 贵定县| 长白| 同仁县| 赫章县| 桂平市| 宜昌市| 巩义市| 武平县| 甘孜| 榆林市| 井研县| 乌兰察布市| 山阴县| 福泉市| 徐水县| 沐川县| 石景山区| 皋兰县| 金溪县| 普安县| 曲靖市| 车致| 准格尔旗| 大埔县| 札达县|