原文:一個線程兩次或者多次調用start()方法會怎么樣

會拋出IllegalThreadStateException 示例代碼如下: 之所以會拋出異常,是因為在start 函數里,一開始會檢查線程狀態,如果線程狀態不為 ,會拋出該異常。線程的狀態初始值為 ,當第一次進入start 方法后,會修改線程狀態,使其不為 ,第二次進入start 函數,那么肯定就拋出異常了 ...

2020-04-15 21:41 0 851 推薦指數:

查看詳情

Java里一個線程兩次調用start()方法會出現什么情況

  這里有一道經典的面試題:“一個線程兩次調用start()方法會出現什么情況?”,咱們這次結合案例從線程源碼的角度炒剩飯。   答:Java的線程是不允許啟動兩次的,第二調用時,線程可能處於終止或者其它(非NEW)狀態,必然會拋出IllegalThreadStateException,這是 ...

Sat Apr 17 22:52:00 CST 2021 0 413
面試連環炮系列(十):一個線程調用兩次start會怎么

一個線程調用兩次start會怎么 Java的線程是不允許啟動兩次的,第二調用必然會拋出IllegalThreadStateException,這是一種運行時異常。 談談線程的生命周期和狀態轉移 新建(NEW),表示線程被創建出來還沒真正啟動的狀態,可以認為它是 ...

Sat Sep 28 18:32:00 CST 2019 0 341
從Thread.start()方法看Thread源碼,多次start一個線程會怎么

這篇文章作為Thread類源碼剖析的補充,從一個側面來看Thread源碼。也解答了面試高頻問題:“多次start一個線程會怎么?” 答案是:java.lang.IllegalThreadStateException 線程狀態非法異常 繼承關系是:--->extends ...

Sat Sep 30 02:10:00 CST 2017 0 7903
啟動一個線程調用 run()還是 start()方法

啟動一個線程調用 start()方法,使線程所代表的虛擬處理機處於可運行狀態, 這意味着它可以由 JVM 調度並執行,這並不意味着線程就會立即運行。run()方 法是線程啟動后要進行回調(callback)的方法。 ...

Mon Jun 01 21:20:00 CST 2020 0 1212
一個接口同時調用兩次其中一個不生效?

在工作中有時候會遇到這樣的需求一個頁面有多個區域,每個區域根據不同的條件去后台查同一個接口。 當我調用此接口兩次的時候,其中一個是不會生效的,甚至network中你會發現只發了一請求, 后來我試了一下調第二個方法的時候放在setimeOut中,時間是1000ms問題解決,但是改成100,接口 ...

Thu Jul 16 19:02:00 CST 2020 0 1052
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM