java关于线程的习题

想请教一下这两个代码的对比差异在哪里分别为什么会选出不同的答案

img

img

哪两个代码?你好像发了两张一样的图,既然是线程问题,另一个相似的代码有可能是dog.start()

如果是直接调用run方法就和正常的方法调用一样,要等这个方法结束之后才能正常按顺序运行后面的代码,run方法里面是一个死循环,所有会一直输出ok。

如果是使用start方法则会开启一个子线程,这个子线程的执行内容为run方法中指定的内容,此时主线程会继续向下执行,效果上是两部分代码都在执行。

同一个图