在Java里面, 存在诸多方式能够达成多线程相互之间的通信, 以下是一些常常会用到的方法。共享变量, 意味着借助于在多个线程之间, 去共享一个乃至多个变量, 如此一来便能得以实现线程之间彼此的通信, 倘若某一个线程改动了共享着的变量其数值的时候其他线程能够察觉到相应的这些变换 java给予关键字以及相关关键字实现线程安全的针对共享变量展开的访问。等待/通知机制, 就在Java这当中的一类给出了wait ()与 ()这类的方面 这些方面可行使在所需要的线程之间的通信工作有着便利 一个线程能够去调用另外一个别的相关线程的wait (), 会将当下的此刻线程来进行的等待, 一直等到其他线程调用起来该对象的 ()或者再就是 ()此类的形式对它进行唤醒。这种机制常常被运用来达成生产者 - 消费者模式, 阻塞队列,Java给出了那接口以及它的实现类像、等, 用以在多线程之间去传递数据, 支持线程安全的插入、移除以及检查队列元素的操作, 当有一个线程尝试往已满的队列里添加元素时, 它会被阻塞, 直至另一个线程从队列中拿走一个元素, 同样地, 当一个线程尝试从空队列中去拿走元素时, 它会被阻塞, 直至另一个线程往队列中添加一个元素, 信号量, Java提供了类, 用来控制对一组资源的访问。信号量能够用来达成多个线程之间的同步以及通信, 比如说, 你能够运用一个信号量去限定与此同时访问某个资源的线程数量。Java给出类别, 意在协调多个线程的执行, 准许一个或多个线程在别的线程继续执行之先进行等待, 这对于实施多阶段计算或者需要多个线程协同完成工作的任务而言极为有用。Java给出类别, 意在让两个线程之间开展数据交换, 给出一个同步点, 从而使两个线程能够经由这个点切换它们的数据。这对于实现需要两个线程协同工作的任务非常有用。这些方法, 其中每一个都有着各自的优点与缺点, 具体究竟要挑选哪一种方法, 这是由你的应用场景以及需求来决定的。在进行选择这个行为的时候, 是需要去考虑线程之间的通信方式的, 还有同步性方面的要求, 性能需求这一要点, 以及代码的可读性和可维护性等诸多因素的。