<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 閱讀(370) 評論(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级毛片免费看网站| 二区久久国产乱子伦免费精品| 图图资源网亚洲综合网站| 在线免费观看一级毛片| GOGOGO高清免费看韩国| 亚洲国产精品成人精品小说 | 亚洲精品偷拍视频免费观看 | 亚洲精品女同中文字幕| 亚洲色WWW成人永久网址| 国产成人无码免费看视频软件| 免费无码一区二区| 亚洲日本乱码一区二区在线二产线 | 亚洲成a人一区二区三区| 最近新韩国日本免费观看| 特级毛片A级毛片免费播放| 亚洲精品国产手机| 国产成人精品亚洲精品| 成年男女男精品免费视频网站| 日韩电影免费在线观看网站| 亚洲中文字幕久久精品蜜桃| 国产V亚洲V天堂无码久久久| 免费永久看黄在线观看app| 成年黄网站色大免费全看| 天黑黑影院在线观看视频高清免费| 在线亚洲高清揄拍自拍一品区| 久久精品夜色国产亚洲av| 免费人成无码大片在线观看| 亚洲国产精品综合久久一线| 免费专区丝袜脚调教视频| 三级毛片在线免费观看| 国产精品亚洲专区无码牛牛| 亚洲国产av一区二区三区丶| 亚洲精品免费视频| 亚洲色无码一区二区三区| 亚洲精品第一国产综合境外资源| 99精品全国免费观看视频|