Java challenge thread with lamda
何が出力されるのか?
public static void main(String[] args) throws InterruptedException { Runnable r = () -> { for(int i = 0; i <= 10000; i++) { System.out.println(i); } System.out.println("Running!"); }; Thread thread = new Thread(r); thread.start(); thread.join(); }
考察
Runnable r の定義が見慣れないのですが。
単純に考えると、つくられたスレッドの中で、i が 0 から 10000 まで出力された後、"Running!"が出力されて終わる気がします。
結果
0
1
2
3
....
9998
9999
10000
Running!
期待していた通りの出力でした。
たぶん、このチャレンジの意図は、Runnable r の定義の仕方なのかなと思います。
lamda であればこんな風に書けますよみたいな。
以下の記事のように、Runnable interface を実装する方法と比較すると、lamda を使った方が断然簡単に書けますね。
blueskyarea.hatenablog.com