黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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

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

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

什么是線程?

  線程是輕量級進程(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多線程視頻”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 9299yy看片淫黄大片在线 | 香港一级纯黄大片 | 久久综合九色欧美综合狠狠 | 天天操狠狠干 | 成人精品一区二区三区中文字幕 | 久久久久国产精品免费免费 | 三级在线观看视频 | 最近2019最新中文字幕3 | 在线看欧美成人中文字幕视频 | 欧美日韩你懂的 | 久久久久久88色偷偷 | 欧美特级黄色 | 草草草视频在线观看 | 成人黄18免费网站 | 日韩男女做性高清在线观看 | 丁香综合网 | 欧美日韩一区二区高清视 | 日日夜夜影院 | 激情综合网站 | 成年黄网站色视频免费观看 | 九九影院韩国理伦片 | www三级| 午夜精品网 | 日韩精品中文字幕久久 | 日韩伦理片免费在线观看 | 成人在线免费视频 | 天堂资源在线播放 | 4388x成人网 4438x17全国最大色成网站 | 欧美中文在线视频 | 免费亚洲视频在线观看 | 成人精品视频网站 | 综合自拍亚洲综合图区美腿丝袜 | 成人网在线观看 | 在线观看丝袜国产 | 日本国内一区二区三区 | 成人在线观看播放 | 夜夜澡人人爽人人喊_欧美 夜夜躁天天躁很很躁 | 久久久久久麻豆 | 伦理片中文 | 成人短视频在线观看免费 | 最近中文字幕完整视频大全版 |