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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多线程中 start()和run()方法的区别

發布時間:2025/3/12 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多线程中 start()和run()方法的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

多線程中? start()和run()方法的區別:




Java線程一直是一個比較容易困擾的地方,首先,我們來認識下怎樣生存線程。

?

認識 Thread Runnable

?

java中實現多線程有兩種途徑:繼承Thread類或者實現Runnable接口。Runnable是接口,建議用接口的方式生成線程,

因為接口可以實現多繼承,況且Runnable只有一個run方法,很適合實現。

在使用Thread的時候只需繼承Thread,并且new一個實例出來,調用 start()方法即可以啟動一個線程

Thread Test = new Thread();

Test.start();

在使用Runnable的時候需要先new一個實現Runnable的實例,之后啟動Thread即可。

Test impelements Runnable;

Test t = new Test();

Thread test = new Thread(t);

test.start();

總結:Thread和Runnable是實現java多線程的2種方式,runable是接口,thread是類,建議使用runable實現 java多線程,

不管如何,最終都需要通過thread.start()來使線程處于可運行狀態

下面我們來談談本文重點,start()和run()方法的區別

1) start:

用start方法來啟動線程,真正實現了多線程運行,這時無需等待run方法體代碼執行完畢而直接繼續執行下面的代碼。

通過調用Thread類的start()方法來啟動一個線程,這時此線程處于就緒(可運行)狀態,并沒有運行,一旦得到cpu時間片,就開始執行run()方法,這里方法run()稱為線程體,它包含了要執行的這個線程的內容,Run方法運行結束,此線程隨即終止。

2) run:

run()方法只是類的一個普通方法而已,如果直接調用Run方法,程序中依然只有主線程這一個線程,其程序執行路徑還是只有一條,還是要順序執行,還是要等待run方法體執行完畢后才可繼續執行下面的代碼,這樣就沒有達到寫線程的目的。

總結:調用start方法方可啟動線程,而run方法只是thread的一個普通方法調用,還是在主線程里執行

?

這兩個方法應該都比較熟悉,把需要并行處理的代碼放在run()方法中,start()方法啟動線程將自動調用 run()方法,

這是由jvm的內存機制規定的。并且run()方法必須是public訪問權限返回值類型為void.

參考博文:https://blog.csdn.net/dada360778512/article/details/6965790


總結

以上是生活随笔為你收集整理的多线程中 start()和run()方法的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

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