Thread を start() と run() で実行するときの違い

[code]

    Thread thread = new Thread(new Runnable() {
        @Override
        public void run() {
            // something
        }
    });
    
[/code]

このような Thread を、`thread.start()` と `thread.run()` で実行するのにはどんな違いがあるのでしょうか。




非同期で実行するには `thread.start()` を使います。これにより、別スレッドが立った上で、その別スレッド上で `run()`
が呼び出されます。  
一方、 `thread.run()` は同期で実行されてしまいます。  
`run()` を呼ぶと、Runnable を実装したクラスの `run()` メソッドが実行されてしまうため、同期処理になります。




非同期で実行するには `thread.start()` を使います。これにより、別スレッドが立った上で、その別スレッド上で `run()`
が呼び出されます。  
一方、 `thread.run()` は同期で実行されてしまいます。  
`run()` を呼ぶと、Runnable を実装したクラスの `run()` メソッドが実行されてしまうため、同期処理になります。

