Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中交换器类的一些实时示例是什么?_Java_Multithreading - Fatal编程技术网

Java中交换器类的一些实时示例是什么?

Java中交换器类的一些实时示例是什么?,java,multithreading,Java,Multithreading,当两个线程可以交换对象时,使用Exchanges类 我可以在大多数示例中看到,两个线程以exchanger对象作为参数启动,并由此调用Exchange Exchanger exchanger = new Exchanger(); ExchangerRunnable exchangerRunnable1 = new ExchangerRunnable(exchanger, "A"); ExchangerRunnable exchangerRunnable2 =

当两个线程可以交换对象时,使用Exchanges类

我可以在大多数示例中看到,两个线程以exchanger对象作为参数启动,并由此调用Exchange

Exchanger exchanger = new Exchanger();

ExchangerRunnable exchangerRunnable1 =
        new ExchangerRunnable(exchanger, "A");

ExchangerRunnable exchangerRunnable2 =
        new ExchangerRunnable(exchanger, "B");

new Thread(exchangerRunnable1).start();
new Thread(exchangerRunnable2).start();
在多线程处理过程中出现此要求时,什么是实时情况?在多线程项目的所有情况下,是否应始终使用交换器类以使项目具有可伸缩性


注意:谷歌上有一个例子,生产者和消费者可以交换缓冲区。不知道它有多实用。还有什么其他的实际情况可以使项目成为相应的架构师呢?另一个例子摘自Java文档,但没有提供详细信息

无论如何,它都不是一个经常使用的类。您实际上是在单个基础上交换信息,从而缩小了用例。许多生产者和消费者的情况是单向的,而不像交换机那样是双向的。“交换器可能在遗传算法和管道设计等应用程序中很有用。”-来自JavaDoc,要编写无GC代码,请参阅:@assoron,谢谢。是的,你也读一下。如果有人实施了相同的方法,我正在寻找关于该方法的总体思路。基本上,应使用交换机开始后续阶段的课程等。javadoc中也有一个示例:。或者在github上:或者。还有更多。只是谷歌…@StephenC:谢谢,但它没有提供所需的细节。感谢“当多线程处理过程中出现此要求时,什么是实时情况?”-请参阅上面的链接以获取一些示例。“在多线程项目的所有情况下,是否应始终使用交换器类以使项目具有可伸缩性?”-否。