面試題 多執行緒

2021-06-22 18:05:02 字數 919 閱讀 2676

現有程式同時啟動了4個執行緒去呼叫testdo.dosome(key, value)方法,由於testdo.dosome(key, value)方法內的**是先暫停1秒,然後再輸出以秒為單位的當前時間值,所以,會列印出4個相同的時間值,如下所示:

4:4:1258199615

1:1:1258199615

3:3:1258199615

1:2:1258199615

請修改**,如果有幾個執行緒呼叫testdo.dosome(key, value)方法時,傳遞進去的key相等(equals比較為true),則這幾個執行緒應互斥排隊輸出結果,即當有兩個執行緒的key都是"1"時,它們中的乙個要比另外其他執行緒晚1秒輸出結果,如下所示:

4:4:1258199615

1:1:1258199615

3:3:1258199615

1:2:1258199616

總之,當每個執行緒中指定的key相等時,這些相等key的執行緒應每隔一秒依次輸出時間值(要用互斥),如果key不同,則並行執行(相互之間不互斥)。原始**如下:

//不能改動此test類

public class test extends thread

public static void main(string args) throws interruptedexception

public void run()

}class testdo

private static testdo _instance = new testdo();

public static testdo getinstance()

public void dosome(object key, string value) catch (interruptedexception e) }}

}

多執行緒面試題

題目 主線程執行10次,子執行緒執行10次,此過程重複50次 package com.thread.test function 主線程執行10次,子執行緒執行10次,此過程重複50次 public class threadproblem start for int j 0 j 50 j class ...

多執行緒面試題

執行緒池的優點?執行緒是稀缺資源,使用執行緒池可以減少建立和銷毀執行緒的次數,每個工作執行緒都可以重複使用。執行緒池為執行緒生命週期開銷問題和資源不足問題提供了解決方案。可以根據系統的承受能力,調整執行緒池中工作執行緒的數量,防止因為消耗過多記憶體導致伺服器崩潰。public threadpoole...

linux 多執行緒 面試題

剛無意中看到morewindows博主秒殺多執行緒面試題 第一篇就有他收集的面試題。那我就用來檢驗一下自己學的怎麼樣吧。前面的選擇題那些跳過,直接看最後的程式設計題。子執行緒迴圈10 次,接著主線程迴圈100 次,接著又回到子執行緒迴圈10 次,接著再回到主線程又迴圈100 次,如此迴圈50次,試寫...