java - 线程间通信

标签 java multithreading concurrency

最简单的实现是当我们从单个类的 main 方法调用其他实现 runnable 的类时:

 public static void main(String [] args){

    // declarations ...


    receiver.start();
    player.start();


 }

在接收器内部说我有一个接收数据包值的 while 循环,我想将该值发送到第二个线程。如何做到这一点?

澄清一下,我还不关心一个线程控制另一个线程,我只希望第一个线程与第二个线程共享值。

撇开小问题 - JDK 7 Fork 是否真的显着提高了 java 并发 api 的性能?

谢谢你的时间,

最佳答案

一个简单的选择是使用 java.util.concurrent.atomic.AtomicReference (或 one of the other Atomic... classes )。创建AtomicReference 的单个实例,并将其传递给各种线程运行的代码,并从接收线程设置值。然后其他线程可以以线程安全的方式在闲暇时读取该值。

does JDK 7 Fork really dramatically increases performance for java concurrent api?

不,它只是一个新的 API,可以让一些事情变得更容易。它不是为了让事情变得更快。

关于java - 线程间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9242204/

相关文章:

multithreading - 为什么默认情况下没有设置线程 Perl(使用 usethreads)?

java - 跨对象实例同步

haskell - 带 Warp/WAI 的线程安全状态

java - 如何将分钟添加到循环内的日期

java:使用ArrayDeque或LinkedList或LinkedBlockingDeque进行非递归深度优先搜索?

java - 在 Java 中实现接口(interface)实例列表的通用容器

.net - 线程安全对象 - 静态还是非静态?

c++ - 多线程环境中的析构函数?

java - 提前/快速启动 ScheduledThreadPoolExecutor 中的任务

java - 如何从 Swing Worker 运行服务执行器?