[問題] Runnable 作為method的input

看板java作者 (阿龍)時間2年前 (2022/10/27 00:09), 2年前編輯推噓3(308)
留言11則, 3人參與, 2年前最新討論串1/1
更新 找到解答 希望可以幫到下一個人 最近在讀java thread相關的章節 碰巧看到leetcode的fizzbuzz 的多執行緒版本 https://i.imgur.com/q4NYd0W.jpg
https://i.imgur.com/QNCiyFe.jpg
想問runnable是怎麼作為函數的input的? 如果有個main function的話,他要怎麼去執行這個class的method? 我對runnable的理解是 他通常是這樣用的 https://i.imgur.com/gbHsVpf.jpg
要透過thread才能調用start方法 儘管討論區有解答 不太清楚如果是在main函數中 是怎麼樣去調用的 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.12.31.194 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/java/M.1666800545.A.DC5.html

10/27 07:27, 2年前 , 1F
Runnable型別代表物件中一定會有 .run() 這個方法
10/27 07:27, 1F

10/27 07:27, 2年前 , 2F
你在main裡面直接用就好了
10/27 07:27, 2F
https://i.imgur.com/JAjGqTN.jpg
我在這裡卡死了... 求大神幫忙 ※ 編輯: ntpuisbest (118.160.150.146 臺灣), 10/28/2022 22:29:52 ※ 編輯: ntpuisbest (101.12.31.194 臺灣), 10/29/2022 00:53:58

10/29 12:44, 2年前 , 3F
這邊的Runnable跟Thread一點關係都沒有
10/29 12:44, 3F

10/29 12:46, 2年前 , 4F
題目寫了ThreadA是要呼叫fizz,不是要當fizz的參數
10/29 12:46, 4F

10/29 12:46, 2年前 , 5F
Runnable printFizz的功能單純是印出fizz,不是Thread
10/29 12:46, 5F

10/29 12:47, 2年前 , 6F
你對Runnable的理解就是錯的,沒有通常是那樣用的
10/29 12:47, 6F

10/29 12:50, 2年前 , 7F
Runnable就是用來當一個無參數無回傳方法的物件,相當於
10/29 12:50, 7F

10/29 12:52, 2年前 , 8F
FunctionalInterface的 () -> void,而Thread只是剛好需要
10/29 12:52, 8F

10/29 12:53, 2年前 , 9F
一個這種參數而已
10/29 12:53, 9F
感謝回答,初學thread到同步跟race condition發現這題 卻發現自己無法在main中運行 我想問一下我應該還是要先透過建構子實例化Fizzbuzz那個class 那Thread a要怎麼呼叫printFizz? Thread a應該是要start開始運行我知道 還有PrintFizz怎麼去塞Runnable 雖然這樣感覺是全問了沒錯... 就是要怎麼在main裡面做運算呢 不知道要下什麼google關鍵字才有用 試過了 method input Runnable java之類的 也沒看過別人討論怎麼在main裡面執行這個東東 ※ 編輯: ntpuisbest (118.160.150.146 臺灣), 10/29/2022 23:06:02 https://github.com/smltq/spring-boot-demo/blob/master/leetcode/src/main/java/com/easy/leetcode/Sub1195.java ※ 編輯: ntpuisbest (118.160.151.12 臺灣), 10/31/2022 23:48:26

11/23 15:42, 2年前 , 10F
我想你有這些問題應該是你不懂method reference
11/23 15:42, 10F

11/23 15:45, 2年前 , 11F
or lambda expression?
11/23 15:45, 11F
文章代碼(AID): #1ZMLkXt5 (java)
文章代碼(AID): #1ZMLkXt5 (java)