1 回答

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
但是,如果我想要同一個(gè)類有兩個(gè)不同的線程,它們運(yùn)行該類的不同方法,該怎么辦?我只能覆蓋 run 方法一次,所以我是否必須區(qū)分線程的名稱,以便運(yùn)行正確的方法?
您需要區(qū)分執(zhí)行線程和正在執(zhí)行的代碼。您可以使用單個(gè)線程Runnable,run()并讓 1000 個(gè)線程執(zhí)行該線程Runnable。這意味著您有 1000 個(gè)線程執(zhí)行相同的代碼,盡管您可能只有一個(gè)Runnable實(shí)例來(lái)處理所有這些線程。
我想要有兩個(gè)線程同時(shí)運(yùn)行 printNewState() 和 setValue(12) 方法,每個(gè)線程都在不同的線程中。
你可以做這樣的事情。請(qǐng)注意,我使用 lambda 來(lái)創(chuàng)建Runnables:
PrintState ps = new ...
Thread t1 = new Thread(ps::printNewState); //t1 will call printNewState
Thread t2 = new Thread(() -> ps.setValue(12)); //t2 will call setValue(12)
t1.start();
t2.start();
添加回答
舉報(bào)