LinkedBlockingQueue 的 Java 性能问题
2022-09-03 05:19:11
这是我关于堆栈溢出的第一篇文章...我希望有人能帮助我
我对Java 6有很大的性能回归。在第一个线程中,我生成一些对象,并将其推入队列在第二个线程中,我将这些对象拉出。当频繁调用 的方法时,会发生性能回归。我监视了整个程序,该方法总体上占用了最多的时间。吞吐量从 ~58Mb/s 到 0.9Mb/s...LinkedBlockingQueue
take()
LinkedBlockingQueue
take()
队列弹出并采用使用此类中的静态方法调用的方法 ar
public class C_myMessageQueue {
private static final LinkedBlockingQueue<C_myMessageObject> x_queue = new LinkedBlockingQueue<C_myMessageObject>( 50000 );
/**
* @param message
* @throws InterruptedException
* @throws NullPointerException
*/
public static void addMyMessage( C_myMessageObject message )
throws InterruptedException, NullPointerException {
x_queue.put( message );
}
/**
* @return Die erste message der MesseageQueue
* @throws InterruptedException
*/
public static C_myMessageObject getMyMessage() throws InterruptedException {
return x_queue.take();
}
}
我如何调整方法以完成至少25Mb / s,或者是否有其他类可以使用,当“队列”已满或为空时,它将阻塞。take()
亲切问候
巴特
P.S.:抱歉我的英语不好,我来自德国;)