大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java基礎學習:java多線程視頻

Java基礎學習:java多線程視頻

更新時間:2020-04-01 14:16:30 來源:動力節點 瀏覽2525次

什么是線程?

  線程是輕量級進程(process)。 任何進程(process)都可以在其中運行多個線程。

  例如,在Web瀏覽器中,我們可以有一個線程將加載用戶界面,而我們可以有另一個線程實際上將檢索需要在用戶界面中顯示的所有數據。

  什么是多線程

  多線程使我們能夠同時運行多個線程。

  例如,在Web瀏覽器中,我們可以有一個處理用戶界面的線程,同時,我們可以有另一個線程來獲取要顯示的數據。

  因此,多線程改善了系統的響應能力。

  什么是并發

  線程上下文中的并發性使我們可以同時運行多個線程。

  但是線程真的在同時運行嗎?

  單核系統

  JVM提供的線程調度程序(Thread Scheduler)決定在任何給定時間運行哪個線程。 調度程序給每個線程一段非常小的時間運行。

  因此,在任何給定時間,我們只有一個在處理器中實際運行的線程。 但是由于切換時間間隔非常小,我們感覺到多個線程正在同時運行。

  多核系統

  即使在多核系統中,也要使用線程調度程序。 但是,由于我們有多個內核,因此實際上我們可以在相同時間運行多個線程。

  例如,如果我們有一個雙核系統,那么我們可以有兩個線程同時運行。 第一個線程將在第一個內核中運行,第二個線程將在第二個內核中運行。

  為什么需要多線程?

  多線程使我們能夠改善系統的響應能力。

  例如,在Web瀏覽器中,如果所有內容都在單個Thread中運行,則每當獲取數據以進行顯示時,系統將完全不響應。 如果需要10秒鐘來獲取數據,那么在那10秒鐘內,我們將無法在網絡瀏覽器中執行任何其他操作,例如打開新標簽頁,甚至關閉瀏覽器。

  因此,在不同線程中同時運行程序的不同部分有助于提高系統的響應能力。

  如何用Java編寫多線程程序

  我們可以使用以下方法在Java中創建線程

  繼承Thread類

  實施Runnable接口

  實施Callable接口

  通過Executor框架與Runnable和Callable任務一起使用

  我將在下期穩重中介紹Callables和Executor框架。 在本文中,我將主要集中于繼承Thread類和實現Runnable接口。

  繼承Thread類

  為了創建可以在Thread中運行的代碼,我們創建一個類,然后繼承Thread類。 任務代碼需要放在run()函數中。 在下面的代碼中,您可以看到Worker是擴展Thread Class的類,并且在run()函數內部完成了打印數字0至5的任務。

Java基礎學習:java多線程視頻

  在上面的代碼中,Thread.currentThread().getName()用于獲取運行代碼的當前線程的名稱。

  為了創建一個線程,我們只需要創建一個Worker類的實例。 然后,我們可以使用start()函數啟動線程。

Java基礎學習:java多線程視頻

  在上述代碼中,我們從Worker類創建3個線程t1,t2和t3。

  然后,我們使用start()方法啟動線程。

  下圖是通過擴展Thread類創建線程的全部代碼。

Java基礎學習:java多線程視頻

  這是我們通過運行上面的代碼獲得的輸出

Java基礎學習:java多線程視頻

  可以看出,所有3個線程都已打印從0到5的數字。

  從輸出中可以清楚地看到3個線程沒有按任何特定順序運行。

  實現Runnable接口

  為了創建可以在線程中運行的代碼,我們創建一個類,然后實現Runnable接口。 由這段代碼完成的任務需要放在run()函數中。 在下面的代碼中,您可以看到RunnableWorker是實現Runnable接口的類,并且打印數字0到4的任務是在run()函數中完成的。

Java基礎學習:java多線程視頻

  為了創建線程,首先我們需要創建一個RunnableWorker對象,該對象實現Runnable接口。

  然后,我們可以通過創建Thread類的對象并將RunnableWorker的對象作為參數傳遞來創建新線程。 如下面的代碼所示。

Java基礎學習:java多線程視頻

  上面的代碼創建了一個Runnable對象r。 然后,它創建3個線程t1,t2和t3,并將r作為參數傳遞給3個線程。 然后使用start()函數啟動所有3個線程。

  下圖為通過實現Runnable接口創建線程的完整代碼

Java基礎學習:java多線程視頻

  在運行上述代碼時,我們將獲得以下輸出。 每次運行代碼時,輸出順序都會改變。

Java基礎學習:java多線程視頻

  與繼承Thread類相比,實現Runnable接口是更好的選擇,因為我們只能繼承一個類,但是我們可以在java中實現多個接口。

  Java 8中的Runnable接口

  在Java 8中,由于Runnable接口只有一個方法run(),因此它成為FunctionalInterface(函數式接口)。

  以下代碼顯示了我們如何在Java 8中創建可運行實例,并且使用了Lambda。

Java基礎學習:java多線程視頻

  在這里,無需創建類然后實現Runnable接口,我們可以直接使用lambda表達式創建Runnable實例,如下所示

Java基礎學習:java多線程視頻

  以上就是動力節點java培訓機構的小編針對“Java基礎學習:java多線程視頻”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 成人午夜大片免费视频77777 | 手机看片自拍日韩日韩高清 | 国产国语videosex另类 | 伊人资源| 久久久久久久久久鸭 | 国产福利在线观看第二区 | 成年女人视频网站免费m | 国产一级二级三级 | 色综合久久夜色精品国产 | 国产农村妇女毛片精品久久 | 欧美狠狠入鲁的视频极速 | 国产女人伦码一区二区三区不卡 | 日本不卡一区二区三区 最新 | 欧美成人午夜视频在线观看 | 日本毛片高清免费视频 | 亚洲精品国产第一区第二区国 | 国产成人不卡 | 99网| 美女撒尿毛片免费看 | 免费在线观看黄色小视频 | 99国内精品| 欧美人与性动交α欧美精品图片 | 亚洲一区 在线播放 | 精品久久久久久蜜臂a∨ | 成年女人毛片免费观看中文w | 欧美成人一区二区 | 日韩欧美第一区二区三区 | 破外女出血一级毛片 | 亚洲国产另类久久久精品小说 | 凹凸精品视频分类国产品免费 | 日本最黄视频 | 久久综合九色综合91 | 奇米四色在线观看 | 成人一级视频 | 日韩毛片免费看 | 九九影院理论片私人影院 | 天天干在线影院 | 精品一区二区三区视频在线观看免 | 99热最新网址| 免费人成黄页网站在线观看 | xxx大片免费视频 |