日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

通俗易懂两种常用的多线程实现方式——Java并发系列学习笔记

發布時間:2024/2/28 java 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通俗易懂两种常用的多线程实现方式——Java并发系列学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如果我們想執行多線程操作,通常有兩種方法

一. 繼承Thread類方式


步驟:

  • 自定義類繼承Thread
  • 覆蓋Thread中的run()方法
  • 創建該類的對象,調用start()方法,開啟線程并調用run方法

  • class MyThread extends Thread{ private int ticket=10; public void run(){ for(int i=0;i<20;i++){ if(this.ticket>0){ System.out.println("賣票:ticket"+this.ticket--); } } } };public class ThreadTicket { public static void main(String[] args) { MyThread mt1=new MyThread(); MyThread mt2=new MyThread(); MyThread mt3=new MyThread(); mt1.start();//每個線程都各賣了10張,共賣了30張票 mt2.start();//但實際只有10張票,每個線程都賣自己的票 mt3.start();//沒有達到資源共享 } }

    ?

    二. 實現Runnable接口


    步驟:

  • 定義一個實現Runnable接口的類
  • 覆蓋run方法
  • 創建該類對象,并以該類對象為參數創建Thread類的對象,從而創建了一個線程
  • 調用start方法,開啟線程并調用run方法。

  • package org.demo.runnable; class MyThread implements Runnable{ private int ticket=10; public void run(){ for(int i=0;i<20;i++){ if(this.ticket>0){ System.out.println("賣票:ticket"+this.ticket--); } } } } package org.demo.runnable; public class RunnableTicket { public static void main(String[] args) { MyThread mt=new MyThread(); new Thread(mt).start();//同一個mt,但是在Thread中就不可以,如果用同一 new Thread(mt).start();//個實例化對象mt,就會出現異常 new Thread(mt).start(); } };

    三. 總結

    采用繼承Thread類方式:
    (1)優點:編寫簡單,如果需要訪問當前線程,無需使用Thread.currentThread()方法,直接使用this,即可獲得當前線程。
    (2)缺點:因為線程類已經繼承了Thread類,所以不能再繼承其他的父類。

    采用實現Runnable接口方式:
    (1)優點:線程類只是實現了Runable接口,還可以繼承其他的類。在這種方式下,可以多個線程共享同一個目標對象,所以非常適合多個相 同線程來處理同一份資源的情況,從而可以將CPU代碼和數據分開,形成清晰的模型,較好地體現了面向對象的思想。
    (2)缺點:編程稍微復雜,如果需要訪問當前線程,必須使用Thread.currentThread()方法。

    局限:
    在并發編程中,我們經常用到非阻塞的模型,在上述的兩種多線程實現中,不管是繼承thread類還是實現runnable接口,都無法保證獲取到之前的執行結果。通過實現Callback接口,并用Future可以來接收多線程的執行結果。

    總結

    以上是生活随笔為你收集整理的通俗易懂两种常用的多线程实现方式——Java并发系列学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。