<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    無線&移動互聯網技術研發

    換位思考·····
    posts - 19, comments - 53, trackbacks - 0, articles - 283
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    多線程設計方法

    Posted on 2009-07-16 22:32 Gavin.lee 閱讀(374) 評論(0)  編輯  收藏 所屬分類: 多線程

    一:繼承Thread,重載run方法
    package com.Gavin.threaddesign;
    /**
     * **********************************************
     * @description 繼承Thread 類的多線程程序 設計方法 
     * 
     * 
    @author Gavin.lee
     * @date Jul 16, 2009    2:25:41 PM
     * 
    @version 1.0
     ***********************************************
     
    */

    class Consumer extends Thread {
        
    int nTime;
        String strConsumer;

        
    public Consumer(int nTime, String strConsumer) {
            
    this.nTime = nTime;
            
    this.strConsumer = strConsumer;
        }


        
    public void run() {
            
    while (true{
                
    try {
                    System.out.println(
    "Consumer name:" + strConsumer + "\n");
                    Thread.sleep(nTime);
                }
     catch (Exception e) {
                    e.printStackTrace();
                }

            }

        }


        
    static public void main(String args[]) {
            Consumer aConsumer 
    = new Consumer(1000"aConsumer");
            aConsumer.start();
            Consumer bConsumer 
    = new Consumer(2000"bConsumer");
            bConsumer.start();
            Consumer cConsumer 
    = new Consumer(3000"cConsumer ");
            cConsumer.start();
        }

    }


    二:實現Runnable接口,重寫run方法
    package com.Gavin.threaddesign;
    /**
     * **********************************************
     * 多線程對象實現Runnable 接口并且在該類中定義用于啟動線程的run 方法。
     * 這種定義方式的好處在于多線程應用對象可以繼承其它對象而不是必須繼承Thread 類,
     * 從而能夠增加類定義的邏輯性
     * 
    @author Gavin.lee
     * @date Jul 16, 2009    2:27:28 PM
     * 
    @version 1.0
     ***********************************************
     
    */

    public class Consumer2 implements Runnable {

        
    int nTime;
        String strConsumer;

        
    public Consumer2(int nTime, String strConsumer) {
            
    this.nTime = nTime;
            
    this.strConsumer = strConsumer;
        }


        
    public void run() {

            
    while (true{
                
    try {
                    System.out.println(
    "Consumer name:" + strConsumer + "\n");
                    Thread.sleep(nTime);
                }
     catch (Exception e) {
                    e.printStackTrace();
                }

            }

        }


        
    static public void main(String args[]) {
            Thread aConsumer 
    = new Thread(new Consumer(1000"aConsumer"));
            aConsumer.start();

        }

    }



    2009年7月19日20:23:14 PS:
    今天挑了一段尚學堂的一段線程的視頻,感覺這個例子更容易理解:
    實現Runnable接口
    package com.Gavin.threaddesign;

    public class TestThread {
        
    public static void main(String args[]) {
            Thread1 t1 
    = new Thread1();
            Thread t 
    = new Thread(t1);
            t.start();    
    //main方法出現執行分支
            
            
    for(int i = 0; i < 50; i++{
                System.err.println(
    "main thread:" + i);
            }

        }
            
    }

    class Thread1 implements Runnable{
        
    public void run() {
            
    for(int i = 0; i < 50; i++{
                System.err.println(
    "Thread1 thread:" + i);
            }

        }
        
    }

    繼承Thread類
    package com.Gavin.threaddesign;

    public class TestThread {
        
    public static void main(String args[]) {
            Thread1 t1 
    = new Thread1();
            t1.start();    
    //main方法出現執行分支
            
            
    for(int i = 0; i < 50; i++{
                System.err.println(
    "main thread:" + i);
            }

        }
            
    }

    class Thread1 extends Thread{
        
    public void run() {
            
    for(int i = 0; i < 50; i++{
                System.err.println(
    "Thread1 thread:" + i);
            }

        }
        
    }

    執行結果將是main線程與Thread1線程隨機交替
    主站蜘蛛池模板: 亚洲不卡中文字幕| 亚洲国产精彩中文乱码AV| 亚洲人成网站看在线播放| 免费看搞黄视频网站| 区久久AAA片69亚洲| XXX2高清在线观看免费视频| 国产偷国产偷亚洲高清日韩| 和老外3p爽粗大免费视频| 亚洲中文字幕在线第六区| 国产色爽免费无码视频| 亚洲AV乱码久久精品蜜桃| 亚洲视频在线观看免费视频| 亚洲日韩中文字幕天堂不卡| 免费看韩国黄a片在线观看| 亚洲日本VA午夜在线电影| 日本免费一区尤物| 亚洲Aⅴ在线无码播放毛片一线天 亚洲avav天堂av在线网毛片 | 瑟瑟网站免费网站入口| 亚洲国产成人精品91久久久| 99久久99这里只有免费的精品| 久久久久亚洲AV成人无码| 日韩免费一区二区三区在线 | 亚洲第一区在线观看| 久久久久久久久久久免费精品| 亚洲va无码va在线va天堂| 91成年人免费视频| 国产精品亚洲专区无码牛牛| 久久亚洲AV永久无码精品| 久久免费区一区二区三波多野| 亚洲理论在线观看| 免费在线黄色网址| 99久久国产免费中文无字幕| 亚洲高清毛片一区二区| 亚洲国产精品一区二区第一页| 我的小后妈韩剧在线看免费高清版 | 免费夜色污私人影院在线观看| 久久免费香蕉视频| 亚洲夂夂婷婷色拍WW47| 曰韩亚洲av人人夜夜澡人人爽| 国产精品视频免费观看| 在线精品自拍亚洲第一区|