6119

[code]

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

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


CC BY-SA 3.0
2015-02-07T13:14:45.187
6118
2015-02-08T04:09:59.847
2015-02-07T14:58:47.617
724
724
question
java
Thread を start() と run() で実行するときの違い


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


CC BY-SA 3.0
2015-02-07T13:14:45.187
6119
2015-02-08T04:09:59.847
2015-02-08T04:09:59.847
7423
724
6118
answer