質問: new Thread(new Runnable() { @Override public void run() { // something } }); ``` このような Thread を、`thread.start()` と `thread.run()` で実行するのにはどんな違いがあるのでしょうか。
回答: 非同期で実行するには `thread.start()` を使います。これにより、別スレッドが立った上で、その別スレッド上で `run()` が呼び出されます。 一方、 `thread.run()` は同期で実行されてしまいます。 `run()` を呼ぶと、Runnable を実装したクラスの `run()` メソッドが実行されてしまうため、同期処理になります。