傳智播客Java線程

來源:互聯網
上載者:User
關於線程的介紹有如下內容:    01. 傳統線程技術回顧
    02. 傳統定時器技術回顧
    03. 傳統線程互斥技術
    04. 傳統線程同步通訊技術
    05. 線程範圍內共用變數的概念與作用
    06. ThreadLocal類及應用技巧
    07. 多個線程之間共用資料的方式探討
    08. java5原子性操作類的應用
    09. java5線程並發庫的應用
    10. Callable與Future的應用
    11. java5的線程鎖技術
    12. java5讀寫鎖技術的妙用
    13. java5條件阻塞Condition的應用
    14. java5的Semaphere同步工具
    15. java5的CyclicBarrier同步工具
    16. java5的CountDownLatch同步工具
    17. java5的Exchanger同步工具
    18. java5阻塞隊列的應用
    19. java5同步集合類的應用         Java線程是一項非常基本和重要的技術,在偏底層和偏技術的Java程式中不可避免地要使用到Java線程技術,特別是android手機程式和遊戲開發中,多線程成了必不可少的一項重要技術。但是,很多Java程式員對Java線程技術的瞭解都僅停留在初級階段,在項目中一旦涉及到多線程時往往就表現得糟糕至極,所以,軟體公司常常使用Java線程技術來考察面試者的基本功和判斷其編碼水平的高低。一   現在我們來回顧一下,傳統的線程建立方式:1:這種方式使用繼承Thread類的方式,也就是使用Thread子類的形式:
Thread t1 = new Thread() {@Overridepublic void run() {while (true) {System.out.println(Thread.currentThread().getName());try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}};t1.start();

2 :使用實現Runnable介面的方式建立線程:

Thread t2 = new Thread(new Runnable() {public void run() {while (true) {System.out.println(Thread.currentThread().getName());try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}}) {};t2.start();

接觸過線程的都知道這兩種建立線程的方式, 接下來我們看一下另一種方式運行結果是怎麼樣的:

new Thread(new Runnable() {public void run() {while (true) {System.out.println("runnable:"+Thread.currentThread().getName());try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}}) {@Overridepublic void run() {while (true) {System.out.println("thread:"+Thread.currentThread().getName());try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}}.start();

這種方式是上面兩種方式的結合體,寫成簡單的方式就是:
new Thread(new Runnable(){}){run()}那麼它到底會運行Runnable子類的run方法還是Thread子類的run()方法呢?我們看一下Thread的原始碼:

    public void run() {if (target != null) {    target.run();}    }

也就是說,如果我們沒有覆蓋Thread的run()時,實現了Runnable介面,那麼就執行Runnable介面的run()方法,然而在上面的例子,我們已經覆蓋 了Thread類的run()方法,
根據多態,所以執行的是Thread子類的run()方法.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.