标签: java collections blockingqueue
是否存在使用具有基本类型的阻塞队列的Java本机实现?如果没有,我该如何建立一个?
我想在使用基元类型时使用阻塞队列而不进行装箱和拆箱。我检查了托架资产,但它不支持阻塞队列。
答案 0 :(得分:2)
据我所知,原始类型没有内置的阻塞队列。
这为您提供了两个选项:
避免原始类型。使用Java的包装器,例如Integer,Float等。这是我建议的,除非你有一个非常好的理由来避免引用(你是否害怕额外的)内存?你打算在队列中保留多少项?)
自己实施阻止队列。使用简单的数组和Semaphore应该相当简单。如果您复制OpenJDK's实施并进行必要的更改,则可能会获得更好的性能。只需将private final E[] items更改为private final int[] items之类的内容,然后在引用items的情况下进行任何其他更改。
private final E[] items
private final int[] items
items