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

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

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

    posts - 17,  comments - 14,  trackbacks - 0

    多線程:減輕編寫交互頻繁、涉及面多的程序的難度;充分利用計算機資源。

          一個操作系統,可以有多個進程,每個進程上邊會有多個線程。一個程序的運行至少啟動兩個線程:main線程和gc(守護)線程。

    線程分為前臺線程和后臺線程(守護線程):

    對Java程序來說,只要有一個前臺線程在運行,這個進程就不會結束;

    如果一個進程只有后臺線程在運行,這個進程就會結束;

    如果某個線程對象在啟動(調用start()方法)之前調用setDaemon(true);方法,這個線程就變成了后臺線程。

    線程的狀態轉換:

    image 

        * 多線程的方法有兩種:

    1、繼承Thread類,并重寫run()方法;

    2、實現Runnable接口。

    雖然有兩種不同的方法,但是它們的多線程啟動方法是相同的,都是同歸Thread類來啟動多線程的[p.start();]。

    start使蓋縣程開始執行是指Java虛擬機調用該線程的run()方法;

    start只是使線程就緒,什么時候開始執行由CPU決定。

    線程只能啟動一次;如果啟動多次,程序在編譯時不會出現錯誤,但是執行時會出現錯誤。

    兩種方法的不同在于:

    方法1的缺點:Java為單繼承,當一個想實現多線程的類繼承了Thread類后就不可以再繼承其他類,這樣就不靈活,沒有擴展性了;

    方法2的優點:實現Runnable接口不僅可以再繼承其他類,還可以實現資源共享。

    總之實現Runnable接口比繼承Thread類要更好一些,所以盡量要使用Runnable而不用Thread。

    下面就這兩種方法舉例說明:

    方法1,繼承Thread類,重寫run()方法。

    class MyThread11 extends Thread{
        
    private int time;
        
    public MyThread11 (String name,int time){
            
    super(name);
            
    this.time=time;
        }

        
    public void run(){
            
    try {
                Thread.sleep(
    this.time);
            }
     catch (InterruptedException e) {
                e.printStackTrace();
            }

            System.out.println(Thread.currentThread().getName()
    +"-->運行,延遲 "+this.time+"毫秒。");
        }

    }

    public class MyDemo01 {
        
    public static void main(String[] args) {
            MyThread11 mt1 
    = new MyThread11("T--A",1000);
            MyThread11 mt2 
    = new MyThread11("T--B",2000);
            MyThread11 mt3 
    = new MyThread11("T--C",3000);
            mt1.start();
            mt2.start();
            mt3.start();
        }

    }

    程序運行結果:(每隔一秒打印一行,打印完后程序結束)
    image 

    方法2,實現Runnable接口。
    class MyThread22 implements Runnable{
        
    private int time;
        
    private String name;
        
    public MyThread22 (String name,int time){
            
    this.name=name;
            
    this.time=time;
        }

        
    public void run() {
            
    try {
                Thread.sleep(
    this.time);
            }
     catch (InterruptedException e) {
                e.printStackTrace();
            }

            System.out.println(
    this.name+"-->運行,延遲 "+this.time+"毫秒。");
        }
        
    }

    public class MyDemo02 {
        
    public static void main(String[] args) {
            MyThread22 mt1 
    = new MyThread22("T--A",1000);
            MyThread22 mt2 
    = new MyThread22("T--B",2000);
            MyThread22 mt3 
    = new MyThread22("T--C",3000);
            
    new Thread(mt1).start();
            
    new Thread(mt2).start();
            
    new Thread(mt3).start();
        }

    }


    程序運行結果:

    (每隔一秒打印一行,打印完后程序結束)

    image 
    posted on 2010-11-08 16:33 Mineralwasser 閱讀(376) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    文章檔案(21)

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲av中文无码乱人伦在线r▽| 亚洲伊人成无码综合网 | 国产亚洲精品美女2020久久| 老妇激情毛片免费| 免费国产在线观看老王影院| 国产亚洲女在线线精品| 亚洲一区二区三区亚瑟| 91在线手机精品免费观看| 亚洲国产高清在线精品一区| 成年美女黄网站18禁免费| 亚洲一线产品二线产品| 精品国产亚洲男女在线线电影| 久久大香香蕉国产免费网站| 亚洲另类小说图片| 国产亚洲美女精品久久久2020| 一级毛片成人免费看免费不卡| 国产成人精品日本亚洲专一区| 亚洲中久无码不卡永久在线观看| 国产老女人精品免费视频| 一级特黄aaa大片免费看| 亚洲精品456在线播放| 无码不卡亚洲成?人片| 波多野结衣在线免费观看| 免费无码AV一区二区| 亚洲的天堂av无码| 中文字幕亚洲情99在线| 亚洲午夜国产精品无码| 亚洲A丁香五香天堂网| 无码高潮少妇毛多水多水免费 | 久久久亚洲裙底偷窥综合| 亚洲国产精品无码久久九九| 亚洲最大av无码网址| 亚洲Av永久无码精品三区在线| 久久亚洲AV成人无码| 曰批免费视频播放免费| 免费看又黄又无码的网站| 人成电影网在线观看免费| 男人的天堂av亚洲一区2区| 亚洲av最新在线观看网址| 亚洲欧洲国产综合AV无码久久 | 久久久久久免费一区二区三区|