乙個關於多執行緒的面試題,網上大多給了錯誤的答案

2021-09-06 03:05:40 字數 340 閱讀 9555

根據執行緒安全的相關知識,分析以下**,當呼叫test方法時i>10時是否會引起死鎖?並簡要說明理由。

public void test(int i)}}

答:不會發生死鎖,(但有一點int是按值傳遞的,所以每次改變的都只是乙個副本,因此不會出現死鎖。但如果把int換做乙個object,那麼死鎖會發生)

原來自己沒有理解多執行緒,還以為test的引數是是物件都傳送死鎖,其實根本不會。

其實不管方法test的引數是基本型別還是物件都不會傳送死鎖。認為發生死鎖的根本就沒有理解死鎖。

如果某個執行緒鎖定了當前類的這個方法,只有徹底退出其他執行緒才可以訪問此方法。另外乙個執行緒可以多次鎖定已經鎖定的類。

關於乙個多執行緒面試題的理解

mytest t2 new mytest 原題目是這樣的 根據執行緒安全的相關知識,分析以下 當呼叫test方法時i 10時是否會引起死鎖?並簡要說明理由。public void test int i 個人理解,這個,死不死鎖,跟 int i,一點關係都沒有,因為,如果要當成執行緒執行的方法,tes...

乙個多執行緒的面試題

面試題的大意是 啟動三個執行緒,分別列印a b c,每個列印十遍,列印的順序為abcabcabc.我的思路是用了執行緒同步技術中的事件manualresetevent事件,用到方法有 set 將事件的狀態設定為終止狀態,允許乙個或多個等待的執行緒繼續 reset 將事件的狀態設定為非終止狀態,導致執...

多執行緒面試題 一

1 多執行緒有幾種實現方案,分別是哪幾種?兩種。繼承thread類 實現runnable介面 擴充套件一種 實現callable介面。這個得和執行緒池結合。2 同步有幾種方式,分別是什麼?兩種。同步 塊 同步方法3 啟動乙個執行緒是run 還是start 它們的區別?start run 封裝了被執行...