【问题标题】:Multithreading in Java, Referencing ObjectsJava中的多线程,引用对象
【发布时间】:2014-04-25 00:14:46
【问题描述】:

所以我正在研究什么对我来说是复杂的 java。我正在研究多线程,我想知道何时将对象的相同实例发送到两个不同的线程,然后将该对象的实例分配给两个线程中的两个单独的实例变量。 java是否将其视为原始对象的同一实例?这仅适用于线程吗?

例如:在我的驱动中

SharedCell share = new SharedCell();
Producer p = new Producer(accessCount, share);
Consumer c = new Consumer(accessCount, share);

在线程中:

public Producer(int accesses, SharedCell cell) {
    super("Producer");
    this.accesses = accesses;
    this.cell = cell;
}

 public Consumer(int accesses, SharedCell cell) {
    super("Consumer");
    this.accesses = accesses;
    this.cell = cell;
}

Producer 中的 run 方法更改 SharedCell 对象中变量的值 Consumer 中的 run 方法访问该变量。这些应该关闭这样做。

那么 Consumer 和 Producer 中的单元格是否引用了驱动程序发送给它们的同一个对象?

【问题讨论】:

    标签: oop object


    【解决方案1】:

    对象是 java 中的引用类型,就像在大多数语言中一样,这意味着在您的示例中是的,消费者和生产者都指向内存中的同一个对象。不,它不仅适用于线程。即使在单线程中,它们也会引用同一个对象。

    【讨论】:

      猜你喜欢
      • 2010-09-15
      • 1970-01-01
      • 2011-01-21
      • 2013-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-10
      相关资源
      最近更新 更多