您的位置

8.1足球直播:【多線程高并發編程】二 實現多線程的幾種方式

來源:2012奥运会足球直播表 點擊:1019

2012奥运会足球直播表 www.ubmml.com.cn 成學會github,歡迎之星

本文已被收錄在GitHub上,形成了相應專題

文章目錄:1的前言。什么是多線程?1.1應用場景2。實現多線程的常用方法通過繼承,實現多線程(第一種方式)通過實現可運行接口,實現多線程(第二種方式)匿名內部類實現(第三種方式)可運行方式繼承類方式通過可調用多線程(第四種方式),啟動一個主線程,啟動幾個線程和多個線程進行測試

前言:

在前一章中,我們已經知道了線程的一些基本概念。在本文中,我們將看看多線程的應用場景,為什么需要多線程,以及實現多線程的幾種方法。

1。什么是多線程?

多線程是指通過軟件優化和硬件同時運行多個線程(任務)。系統更好運行的資源。

例如,總裁,很久以前,當收到老板的商業計劃書時,需要開發一個充電樁管理物聯網管理平臺,通過網站查看每個充電樁的狀態。如果總統獨自發展,在一年內完成它會感覺有點困難。畢竟,總統專注于后端開發。這時,總裁告訴老板,有必要增加人手,招聘一個前端和一個后端。總統負責與硬件接口,每個人都負責各種同步開發的一部分。最后,經過三位總統的努力,這項工作在半年后移交了。這就是多線程的優勢。不止一個人,信息是共享的(一個進程中有多個線程,資源共享在同一個內存中)

1.1應用場景

網站發送多個請求并逐一返回結果,這意味著多線程被高度使用。如果沒有多線程,我們將不得不在運行它之前發出一個請求。

按鈕聊天界面,如果沒有多線程,發送一條消息,需要經過最后一條消息處理,才能處理下一條要求。

通過網絡分析數據信息。如果沒有多線程和1w線程,我們只能逐個處理它們。我們對付不了他們。如果沒有多線程,分析邏輯就不能從業務邏輯中分離出來,實現程序解耦。

2。實現多線程的常用方法

為了模擬真實場景,每個線程都添加了延遲代碼。

此代碼表示休眠1秒,以毫秒為單位。

多線程是通過繼承實現的(第一個)

Call code

因為java是單一繼承,所以不推薦多線程。如果類已經被繼承,線程類不能被繼承。

多線程(秒)是通過實現可運行接口來實現的。

Call code

Anonymous內部類實現(三)

runnable method

Inherit class method

多線程是由Callable實現的(四)

Call code

之前實現多線程的幾種方法需要重寫Run方法才能啟動多線程??傻饔梅椒ㄊ迪侄嘞叱?,需要重寫調用方法。通過調用get方法獲得多線程結果。注意get方法總是被阻塞,沒有返回值,主線程總是等待。

應用場景,例如,導出大量數據。假設我們想要導出100瓦的數據,需要30秒,我們可以通過分頁檢查每個線程10瓦的數據,并啟動10個線程來獲得處理結果。這樣,可以通過多線程來提供查詢效率。

啟動了一個主線程,啟動了幾個線程

idea print

eclipse print

啟動了兩個線程,一個主線程main是程序的入口。

還有一個[監視器Ctrl-Break],這是一個特定于IDEA的監視線程。正確的打印應該是gc線程。這個結論可以從上面兩張圖片中得出。

多線程測試

通過測試結果,我們發現數據是在交換中運行的。如果是單個cpu,一次只能運行一個通道。即使它是通過多線程實現的,它每次都會交替運行。只是電腦運行得很快,我們看不出有什么不同。說到這里,一些社區成員質疑是否有必要在單個cpu上使用多線程。

即使是單個cpu,使用多線程也有很多優點。讓我們減少不必要的等待,更好地利用資源。

如果它是多處理器的,它可以



最新要聞

{ganrao} 股票指数的计算公式 体彩福建36选7第20009开奖结果 石家庄站街女包夜 火箭vs雄鹿 昆虫派对 叩富模拟炒股官网 日本av白石瞳 福彩31选七开奖结果 日本黄色片做爱的 m乌鲁木齐按摩叶小姐 201903026篮网开拓者 湖北福彩开奖 大智慧手机炒股 模拟 日本av饭岛爱电影 福彩3d开奖结果查询 河北11选5结果