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

歡迎訪問 生活随笔!

生活随笔

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

java

java线程的创建与执行_Java多线程的创建和运行

發布時間:2023/12/10 java 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java线程的创建与执行_Java多线程的创建和运行 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.多線程的好處

多線程是一個很有用的東西,它使的系統可以同時運行多個任務,提高程序的執行效率。大家平時可能沒有注意到,其實我們電腦能同時執行多個程序的基本原理就是多線程。

每一個程序都是一個進程,而線程則是進程下獨立的執行單元。

如果把一臺電腦當成一個工業園區,那么這個電腦能容納的工廠越多,說明這個電腦越好,而進程就是對于電腦而言,就猶如工廠對于工業園區而言。而工廠中的每一條流水線就是工廠的進程,他們都是獨立的,但是在關系的可以互相依賴,或者互相排斥等等,但是最重要的一點,他們是可以獨立運行的。因此工廠都是多線程模式,我要生產一臺電腦,不會先造外殼,然后造硬盤,內存等等一個個造完再去組裝吧。

我們是分成多條流水線,造外殼的專門造外殼,造硬盤的造硬盤,造內存的造內存,最后去組裝流水線組裝。用第一種方法,就是一條龍做下來所消耗的時間和多條流水線同時運行。假設一下我們生產電腦每個步驟所需人力和時間為1和n秒。現在有m個步驟才能完成一臺電腦。那么一條龍式所需的人力為m,所需時間為nm。如果是多線程,現在有m條流水線,所需人力為m,所需時間為n。這不難看出,只要電腦性能足夠(所謂人力),多線程所消耗時間將比一條龍式做法少很多很多。再硬件性能已經不再是最大限制的時候,多線程將是最適合的現代發展。

還有一點,多線程對處理高并發是最合適的。如果我們的面對服務器都是一對一服務,那么對硬件而言是一種浪費,如果過多的同時接入用戶,又會對系統而言不能做到很好的執行,因為他是一條龍式的,但是如果我們現在不是一條龍,而是流水線。就像銀行柜臺,只有一個窗口,那么這個窗口要處理轉賬,取錢,存款等事情的時候就會變慢。但是如果三個窗口分別處理就會變快,這就是所謂的多線程的優勢。

2.Java多線程的創建

Java多線程創建目前而言有三種方式:新建繼承Thread類,新建實現Runnable類,匿名類三種。但其實都是基于Runnable接口完成,因為Thread也是實現了Runnable接口。所以可以說如果掌握了Runnable接口,那么基本就掌握了多線程的創建。

1.創建線程方式1:繼承Thread類

創建一個類繼承thread,重寫run方法:將線程任務相關的代碼寫在該方法中。

創建子類對象,調用start方法開啟線程。

2.創建線程方式2:實現runnable接口

創建一個類實現Runnable接口,重寫run方法:將線程任務相關的代碼寫在該方法中

創建Runnable接口實現類對象,根據實現類對象創建Thread對象

調用線程對象的start方法開啟線程:在新的路徑中執行實現類對象的run方法

3.創建線程的方式3:匿名內部類

匿名內部類的語法

new類名或者接口名(){

//有方法重寫就重寫

}

這個辦法是最常用的,雖然只有一次性,但是我們會經常使用。因為有的時候線程我們開啟一次就夠了,如果需要多個線程的話,一般會直接使用線程池不需要我們直接手動開啟了。但是如果說我們只是短時間內使用,直接使用匿名表達式就可以了。(補充一下:不一定會使用匿名表達式,因為以一種接口叫函數式接口,就是接口里面只有且只能有一個抽象方法。這種情況下我們可以使用lambda表達式,用起來跟加簡單。當然還有方法引用這種方法但是其實都是差不多的。)

4.總結

重點其實在于run方法,所有的線程開啟終歸依賴于run方法。就像我們運行java代碼的時候,入口只能是main方法一樣,運行多線程唯一入口也只能是run方法。

所以所有要執行的代碼都要寫在run方法中。

但是!!!

啟動線程的方法是start方法

記住這兩個最重要的方法,一個寫代碼,一個啟動線程。上面三種創建線程的方法都依靠這兩種方法執行線程。

總結

以上是生活随笔為你收集整理的java线程的创建与执行_Java多线程的创建和运行的全部內容,希望文章能夠幫你解決所遇到的問題。

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