Tag: queue

LinkedList内存泄漏

我正在尝试调试挂起的应用程序。 该程序使用一个使用LinkedList实现的队列,在压力测试期间,我发现程序因堆内存不足而停止响应。 我分析了堆转储,发现内存似乎从LinkedList 。 堆转储的相关部分: ▶java.net.Vectior @ 0xff5eacd0 ▶▶java.util.Vector @ 0xff629f30 ▶▶▶java.lang.Object[1280] @ 0xff629f50 ▶▶▶▶class com.itnade.vsm.staticobject.TrapQueue @ 0xff6b23e8 ▶▶▶▶▶java.util.LinkedList @ 0xff6b2460 ▶▶▶▶▶▶java.util.LinkedList$Node @ 0xfb954560 ▶▶▶▶▶▶java.util.LinkedList$Node @ 0xfb959968 ▶▶▶▶▶▶java.util.LinkedList$Node @ 0xfb95ede8 ▶▶▶▶▶▶java.util.LinkedList$Node @ 0xfb964230 ▶▶▶▶▶▶java.util.LinkedList$Node @ 0xfb969638 … … 正如您在转储中看到的那样, LinkedList$Node不会被删除,并且会累积。 该计划的一般流程是: Queue.offer()→Queue.poll→Queue.remove(object) 为什么LinkedList似乎是泄漏内存,我该如何防止这种情况发生?

Java Pig拉丁语句子翻译使用队列

我是Java的新手,我正在尝试创建一个程序,将一个句子翻译成Pig Latin,将单词的第一个字母移到最后,如果第一个字母是元音,则在末尾添加“y”并且“ay”最后,否则。 我需要为此使用队列。 目前我的计划正在终止,我想知道是否有人能够找到我出错的地方或下一步去哪里。 谢谢! import MyQueue.QueueList; import java.util.Scanner; 公共类PigLatin { public static void main (String[] args) { Scanner scan = new Scanner (System.in); QueueList word = new QueueList(); String message; int index = 0; char firstch; System.out.print (“Enter an English sentence: “); message = scan.nextLine(); System.out.println (“The equivalent Pig Latin sentence is: “); firstch […]

当队列持久时,慢速HornetQ Producer

我在horntQ中尝试过Persistent Queue。 我做了两个单独的例子(Producer,Consumer)。 我的消费者工作得很好,但制作人花了太多时间来完成发送消息。 我既分开也分开跑。 可能是什么问题呢? 我的代码是: public class HornetProducer implements Runnable{ Context ic = null; ConnectionFactory cf = null; Connection connection = null; Queue queue = null; Session session = null; MessageProducer publisher = null; TextMessage message = null; int messageSent=0; public synchronized static Context getInitialContext()throws javax.naming.NamingException { Properties p = new Properties( ); […]

java BlockingQueue没有阻塞偷看?

我有一个阻塞队列的对象。 我想写一个阻塞的线程,直到队列中有一个对象。 与BlockingQueue.take()提供的function类似。 但是,由于我不知道我是否能够成功处理对象,我想只是peek()而不是删除对象。 我想删除该对象只有我能够成功处理它。 所以,我想要一个阻塞的peek()函数。 目前,peek()只是在队列为空时根据javadoc返回。 我错过了什么吗? 有没有其他方法来实现此function? 编辑: 如果我只使用线程安全队列而偷看和睡觉的任何想法? public void run() { while (!__exit) { while (__queue.size() != 0) { Object o = __queue.peek(); if (o != null) { if (consume(o) == true) { __queue.remove(); } else { Thread.sleep(10000); //need to backoff (60s) and try again } } } Thread.sleep(1000); //wait 1s […]

这有什么不对? 我得到一个java.lang.ClassCastException错误,但我看不出我出错的地方

这是我第一次真正使用列表和队列,所以这可能是一个非常简单的错误。 是因为我的队列中充满了无法转换为整数的对象吗? //populate array for(int i=0; i<11; i++){ numberarray[i] = i; } // populate list with numbers from array List numList = Arrays.asList(numberarray); Collections.shuffle(numList); Queue queue = new LinkedList(); queue.addAll(numList); int num1 = (Integer) queue.poll(); assignPictures(button01, num1);

为什么JavaFX中没有ObservableQueues?

为什么JavaFX中没有ObservableQueue? 如果我们查看FXCollections的Java 9文档(只是为了查看是否有任何更改),我们会看到静态帮助器方法来创建Observable集,列表和映射。 还有一些方法可以创建Observable浮点数和整数数组。 但是,无法创建ObservableQueue。 Java中的Queue接口有许多有趣的实现,包括ArrayDeque,DelayQueue,ConcurrentLinkedQueue,PriorityQueue等。为什么不支持在JavaFX中创建ObservableQueues的原因是什么。

使用IBM MQ类从队列中浏览,读取和删除消息

我正在使用Eclipse的Java类编写一个简单的Java应用程序。 现在,我可以在不删除存储的消息的情况下浏览远程队列。 这是阅读周期的代码: MQQueueManager QMgr = new MQQueueManager(qManager); //<– qManager is a String with the QMgr name int openOptions = MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_INPUT_SHARED | MQC.MQOO_BROWSE; MQQueue queue = QMgr.accessQueue(queueName, openOptions); MQMessage theMessage = new MQMessage(); MQGetMessageOptions gmo = new MQGetMessageOptions(); gmo.options=MQC.MQGMO_WAIT | MQC.MQGMO_BROWSE_FIRST; gmo.matchOptions=MQC.MQMO_NONE; gmo.waitInterval=5000; boolean thereAreMessages=true; while(thereAreMessages){ try{ //read the message queue.get(theMessage,gmo); //print the […]

使用链接列表实现堆栈

在Java中使用链表实现堆栈的最佳方法是什么? 编辑:我会使用干净的代码定义最有效。 我已经使用了一个数组来实现一个堆栈,但我不熟悉链接列表,所以想知道是否有人可以帮我实现类似下面的内容: public class StackArray{ private Object [] objArray; private int stackSize; public StackArray(){ objArray = new Object[50]; stackSize = 0; } public StackArray(int size){ objArray = new Object[size]; stackSize = 0; } //public interface methods – push, pop, top, empty & clear public void push(Object o)throws StackArrayException{ if(stackSize < objArray.length){ objArray[stackSize] = o; […]