<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線程隨機交替
    主站蜘蛛池模板: 成人影片麻豆国产影片免费观看| 一个人免费播放在线视频看片| 亚洲a一级免费视频| 亚洲色精品vr一区二区三区| 一级特黄录像免费播放中文版| 免费在线观看毛片| 黄色网址在线免费观看| 国产18禁黄网站免费观看| 男女超爽视频免费播放| 免费夜色污私人影院在线观看| 青青视频免费在线| 国产午夜亚洲不卡| 国产精品免费一区二区三区四区| 久久国产精品亚洲一区二区| 免费看又黄又无码的网站| 亚洲人成电影在线观看青青| 成人免费午夜视频| 手机永久免费的AV在线电影网| 亚洲一级Av无码毛片久久精品 | 亚洲欧美日韩一区二区三区| 免费无码一区二区三区蜜桃大| 久久久久久久久无码精品亚洲日韩| 国产免费私拍一区二区三区| free哆拍拍免费永久视频| 亚洲成av人在线视| 久草在视频免费福利| 亚洲av永久无码一区二区三区| 亚洲麻豆精品国偷自产在线91| 大地资源网高清在线观看免费 | 亚洲AV无码专区国产乱码电影| 18观看免费永久视频| 亚洲精品美女久久7777777| 亚洲裸男gv网站| 91精品成人免费国产片| 国产精品亚洲精品日韩动图| 国产av无码专区亚洲av果冻传媒| 啦啦啦完整版免费视频在线观看| 久久亚洲中文无码咪咪爱| 亚洲V无码一区二区三区四区观看| 桃子视频在线观看高清免费完整| 免费精品视频在线|