2

如果我创建了两个对象,它们在 Java 中运行到两个不同的线程。如果其中一个对象调用另一个对象中的方法。方法是在调用该方法的对象的线程中运行,还是在其中包含该方法的对象中运行?

4

2 回答 2

6

该方法在调用它的线程中运行。

类或对象不在线程中运行,而是在代码中运行。所以重要的是调用对象方法的哪个线程。

正如 Thilo 所说:类和对象根本不运行。

于 2013-07-13T12:44:50.850 回答
1

除非显式启动线程或调用的方法在另一个线程(例如 Swing Worker)中运行任务,否则它是同一个线程。

无论如何,启动新线程的代码在当前线程中运行,并指示 JVM 启动一个线程。

每个线程都是独立于类或对象的独立执行线(多个线程尝试访问同一个对象时除外;我们在那里有锁定),并且可以在其生命周期内访问许多类和对象。

于 2013-07-13T12:45:27.923 回答