作者ntpuisbest (阿龍)
看板java
標題[問題] Runnable 作為method的input
時間Thu Oct 27 00:09:03 2022
更新 找到解答 希望可以幫到下一個人
最近在讀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://webptt.com/m.aspx?n=bbs/java/M.1666800545.A.DC5.html
1F:推 SHANGOYANYI: Runnable型別代表物件中一定會有 .run() 這個方法10/27 07:27
2F:→ SHANGOYANYI: 你在main裡面直接用就好了10/27 07:27
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
3F:→ ssccg: 這邊的Runnable跟Thread一點關係都沒有10/29 12:44
4F:→ ssccg: 題目寫了ThreadA是要呼叫fizz,不是要當fizz的參數10/29 12:46
5F:→ ssccg: Runnable printFizz的功能單純是印出fizz,不是Thread10/29 12:46
6F:→ ssccg: 你對Runnable的理解就是錯的,沒有通常是那樣用的10/29 12:47
7F:→ ssccg: Runnable就是用來當一個無參數無回傳方法的物件,相當於10/29 12:50
8F:→ ssccg: FunctionalInterface的 () -> void,而Thread只是剛好需要10/29 12:52
9F:→ ssccg: 一個這種參數而已10/29 12:53
感謝回答,初學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
10F:推 ppc: 我想你有這些問題應該是你不懂method reference 11/23 15:42
11F:推 ppc: or lambda expression? 11/23 15:45