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

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