【发布时间】:2012-04-19 19:21:41
【问题描述】:
我正在做一些并发编程,其中一部分困扰着我。
假设我有一些类 Foo 扩展了 Thread 并实现了它自己的名为 bar() 的公共方法以及所需的 run() 方法。如果我实现多个Foo 对象,每个对象都包含对另一个Foo 对象的引用,并且在Foo 类的run() 方法内部是对bar() 方法的任何Foo 对象的调用有参考。如果名为“Thread-1”的Foo对象在名为“Foo”的Foo对象上调用bar(),那么究竟是谁在执行“Thread-2”中的方法代码?
执行是从“Thread-1”移交给“Thread-2”执行还是“Thread-1”继续执行“Thread-2”中的代码?如果它是第二选择,我怎样才能让它像第一选择一样?
【问题讨论】:
标签: java multithreading concurrency thread-safety