Java 难以理解这个概念:线程主要通过共享对字段和引用字段引用的对象的访问来进行通信

Java 难以理解这个概念:线程主要通过共享对字段和引用字段引用的对象的访问来进行通信,java,multithreading,object-reference,Java,Multithreading,Object Reference,我是Java新手,正在为它的一些概念而挣扎。我在Java教程Oracle中看到这样一句话:“线程主要通过共享对字段和对象引用字段引用的访问来进行通信。”有人能给我解释一下“对象引用字段引用”是什么意思吗?什么是“对象引用”?提前谢谢 一个非常基本的答案是,当一个线程可以访问一个对象时,其他线程不应该能够同时访问同一个对象,它们也不应该能够访问对象引用 关于对象引用,如上所述 引用用于描述指向对象所在内存位置的指针 线程应该在它们之间使用对象和对象引用来共享时间,确保避免死锁对象,因为线程永远不会

我是Java新手,正在为它的一些概念而挣扎。我在Java教程Oracle中看到这样一句话:“线程主要通过共享对字段和对象引用字段引用的访问来进行通信。”有人能给我解释一下“对象引用字段引用”是什么意思吗?什么是“对象引用”?提前谢谢

一个非常基本的答案是,当一个线程可以访问一个对象时,其他线程不应该能够同时访问同一个对象,它们也不应该能够访问对象引用

关于对象引用,如上所述

引用用于描述指向对象所在内存位置的指针

线程应该在它们之间使用对象和对象引用来共享时间,确保避免死锁对象,因为线程永远不会释放对象供另一个线程使用。

以下是:

线程主要通过共享对字段和引用字段引用的对象的访问来进行通信。这种形式的通信非常有效,但可能导致两种错误:线程干扰和内存一致性错误。防止这些错误所需的工具是同步

引用是指向内存中对象的指针。共享引用意味着属于一个线程正在执行的对象的引用被复制到另一个线程正在访问的对象中

假设我们有一个队列,其中一些线程将东西放入队列,其他线程从队列中取出东西。当一个线程将一个对象放入队列时,它首先由引用该对象的线程(称为生产者)开始,然后将其放入队列后,队列将引用该对象。然后,另一个正在从队列中消费项目的线程出现并从队列中获取对象,现在消费者线程正在引用它。因此对象引用在线程之间传递

本教程将讨论为使引用从一个线程可靠地传递到另一个线程而需要采取的措施。对对象进行跨线程可见的更改花费太大,无法一直执行。当您要将更改发布到另一个线程时,必须执行一些特定的操作,例如锁定或使用volatile关键字。

请参阅“”。可能重复的