奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

java語言

Java多線程知識點介紹

時間:2024-09-05 07:09:03 java語言 我要投稿
  • 相關推薦

Java多線程知識點介紹

  線程,有時被稱為輕量級進程(Lightweight Process,LWP),是程序執行流的最小單元。一個標準的線程由線程ID,當前指令指針(PC),寄存器集合和堆棧組成。Java多線程知識點介紹分享給大家,歡迎大家閱讀!

Java多線程知識點介紹

  一、概述

  標題很抽象,什么叫更簡單?更是相比誰來說的呢?

  原來,我們定義任務,都是實現自Runnable或者Callable接口,但是這樣必然需要你將新定義的任務附著給線程,然后再調用線程啟動。在不考慮Executor的情況下,你會感覺這么做很呆板,如果直接new一個任務對象,他自己就能啟動的話,是不是更好?這就是更簡單的線程這個標題的由來。

  二、實現

  1.繼承自Thread

  因為Thread實現了Runnable接口,所以繼承自Thread的類,實現其run方法,其中定義的也就是任務。

  這樣做的好處是,可以直接調用父類的start方法,可以實現概述中要實現的效果

  public class TaskExtendsThread extends Thread{ private int countDown = 5; private static int threadCount = 0; /* * 可以在它的構造方法里直接調用run方法 */ public TaskExtendsThread(){ super(Integer.toString(++threadCount)); start(); } public String toString(){ return "#"+getName()+"("+countDown+")."; } public void run() { while(true){ System.out.println(this); if(--countDown == 0 ) return ; } } public static void main(String[] args){ for(int i = 0 ;i < 5 ;i++) new TaskExtendsThread(); }

  }

  這樣,在new一個對象時就會讓你的任務自動附著給線程并啟動。

  2.自管理的Runnable,實現Runnable接口。例如SelfManagedThread

  既然已經有了Thread類的實現,為什么還要有自管理Runnable呢?這樣做和繼承Thread沒有區別,只是這樣做會讓你的類更靈活,實現了該類還可以繼承其他你想讓他繼承的類。

  public class SelfManagedThread implements Runnable{ private int countDown = 5; private Thread t = new Thread(this); /* * 在構造器中啟動線程可能會變得很有問題 * 因為另一個任務可能會在構造器結束之前開始執行,這意味著該任務能夠訪問處于不穩定狀態的對象 */ public SelfManagedThread(){ t.start(); } public String toString(){ return Thread.currentThread().getName()+"("+countDown+")."; } @Override public void run() { while(true){ System.out.println(this); if(--countDown==0) return; } } public static void main(String[] args){ for(int i = 0; i < 5 ;i++) new SelfManagedThread(); }

  }

  三、然并卵

  這個大標題起的很好,因為目前為止,只知道這兩種方式,都是在構造器中啟動線程的,這可能會變的很有問題,因為另一個任務可能會在構造器結束之前開始執行,這意味著該任務可能訪問處于不穩定狀態的對象.故:優選Executor而不是顯示地創建Thread對象的一個原因,但是也不能說這樣的解決方式完全沒有用,待有朋友看到文章后給些提示……

  四、線程的術語

  至此,關于線程的實現,大部分總結完了,剩下的就是競爭資源、線程同步等并發方面的問題了。所以,在此總結下線程的術語

  術語

  |——線程并不是任務,線程不做任何事情只是驅動附著給它的任務執行

  |——Runnable接口理解:可以理解為該方法的反型封裝,即它執行能做的事情

  |——其實任務應該實現一個名為Task的接口,這樣更容易理解java中的線程

  |——從概念上講:我們希望創建獨立于其他任務運行的任務,因此我們應該能夠定義任務,然后說“開始”,并且不用操心細節。

  |——java的線程機制基于來自c的低級的p線程方式,這事你必須深入研究,并且需要完全理解其所有事務的所有細節的方式,這種低級特性部分地滲入 了java的實現中,因此為了處于更高的抽象級別,在編寫代碼時,你必須遵循規則

  |——任務:在描述將要執行的工作時使用術語“任務”;在引用到驅動任務的具體機制時,使用屬于“線程”

【Java多線程知識點介紹】相關文章:

java多線程介紹08-23

Java多線程知識點08-08

關于Java多線程介紹09-09

java的多線程09-09

java多線程08-31

java語言的多線程08-29

java多線程教程11-03

Java多線程問題總結10-24

如何使用java多線程08-23

Java多線程的開發技巧10-16

主站蜘蛛池模板: 海阳市| 福建省| 历史| 布尔津县| 平昌县| 开封市| 额敏县| 天镇县| 德兴市| 额济纳旗| 淮北市| 即墨市| 南澳县| 山阴县| 苏尼特左旗| 宁远县| 绥阳县| 德钦县| 尼木县| 通山县| 浦北县| 沅江市| 梁平县| 定安县| 新邵县| 浠水县| 夏津县| 宣城市| 额济纳旗| 衡山县| 获嘉县| 晋江市| 漠河县| 时尚| 宜城市| 绍兴市| 保定市| 天水市| 班戈县| 衡阳市| 彩票|