【用Java控制内部队列】教程文章相关的互联网学习教程文章

java-执行程序线程池-限制队列大小和最早的出队【代码】

我在Spring Boot应用程序中使用固定线程池供生产消息的使用者使用.我的生产者的生产速度比生产者处理消息的速度快很多,因此线程池的队列似乎“泛滥”. 限制队列大小的最佳方法是什么?预期的队列行为将是“如果队列已满,请除去头部并插入新的Runnable”.是否可以像这样配置执行器线程池?解决方法:ThreadPoolExecutor通过ThreadPoolExecutor.DiscardOldestPolicy支持此功能:A handler for rejected tasks that discards the oldes...

java-如何获取现有的JMS队列?

我觉得这可能是一个非常简单的问题,但这是我对JMS的首次尝试,因此我不确定. 我试图写入一个现有的JMS队列(然后从另一个队列中读取),为此我知道该队列的名称,主机,队列管理器和通道.我如何以javax.jms.Destination对象的形式获取对此队列的引用? 我发现的所有示例都涉及到调??用javax.jms.Session.createQueue(String),但是由于此队列已经存在,所以我不想创建另一个队列,对吗?还是我误会发生了什么? 如果有问题,我正在使用com.ib...

Java的持久性延迟作业队列

我正在寻找一个现有的系统来代替现有的缓慢而复杂的作业管理的书面机制.现有系统: > 1个具有大量大量工作表的MySQL DB-队列>多个服务器(用Java编写)均从队列中提取作业并对其进行处理>处理完作业后,可能不会将其从队列中删除,以便稍后重新运行>作业可能会创建其他作业并将其插入队列 局限性: >随着创建和插入到队列中的作业越来越多,从中提取作业将花费更长的时间. (根据优先级和类型选择作业)-创建瓶颈 我正在寻找可以替代此系统...

java-如何在不使用阻塞队列的情况下将消息传递给另一个线程?【代码】

我有一个非常简单的服务器(使用kryonet).客户端仅存储汽车的当前状态(x,y,角度等),并发送加速和转弯请求. 服务器正在接收请求,并将它们添加到ArrayBlockingQueue中,物理线程将耗尽该队列并读取和更新. 添加其他玩家时,游戏速度会降低近一倍.我排除了很多事情(我已将所有更新和程序包发送速度限制在60Hz.) 我怀疑使用阻塞队列会阻塞太多,从而导致速度下降. 如何在不阻止问题的情况下将客户端请求发送到物理线程?解决方法:I am susp...

Java使用队列解决约瑟夫问题【代码】【图】

约瑟夫问题: 传说在公园1世纪的犹太战争中,犹太约瑟夫是公元一世纪著名的历史学家。在罗马人占领乔塔帕特后,39 个犹太人与约瑟夫及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人俘虏,于是决定了一个流传千古的自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报到第3人该人就必须自杀,然后再由下一个人重新报数,直到所有人都自杀身亡为止。然而约瑟夫和他的朋友并不想遵从这个约定,约瑟夫要他的朋友先...

java-用一个使用者和一个生产者实现并发队列的最快方法是什么?

我想到了java.util.concurrent.ConcurrentLinkedQueue,但是对于这种两线程方案真的是最佳选择吗?我正在寻找双方(生产者和消费者)可能的最小延迟.如果队列为空,则可以立即返回null;如果队列已满,则可以立即丢弃提供的条目. ConcurrentLinkedQueue是否使用超快速和轻锁(AtomicBoolean)?有没有人对ConcurrentLinkedQueue进行基准测试,或者知道这样做的最终最快方法? 其他详细信息:我认为队列应该是公平的,这意味着使用者不应让使...

数据结构学习--Java栈和队列【代码】

栈:先进后出 队列:先进先出 都是数组存放,但是删除的时候不是删除了数组中的数据,而是使用增加游标标识的方式实现删除,“游标标识--”完成删除操作,查看的时候,也不是直接查看栈和队列的数组元素,而是使用游标的方式向外查看。 栈的实现 package com.example.deer;public class MyStack { private long[] arr; private int top; /** * 默认构造函数 */ public MyStack(){ arr = new long[10]; ...

使用java语言实现一个队列(两种实现比较)(数据结构)【代码】【图】

一.什么是队列,换句话说,队列主要特征是什么? 四个字:先进先出 六个字:屁股进,脑袋出 脑补个场景:日常排队买饭,新来的排在后面,前面打完饭的走人,这就是队列; OK,思考一个问题,我为什么写了两种实现,它们的区别是什么,哪个性能更好一些? 我觉得学习一定要带着问题来学习; 二.队列的两种实现 1.数组队列 数组队列比较简单,基于之前写的动态数组所实现的,基本方法都是根据队列的特性从而选择性的调用动态数组的方...

在Java中不使用队列的二叉树的正确视图【代码】

HERE是不使用队列的二叉树右视图的c实现.当我尝试将其转换为Java时,它不起作用.这是我的Java代码: (我认为最有可能是因为我没有正确理解算法以及对maxLevel指针/引用的处理)public static void rightView(TreeNode tNode){int maxLevel = 0;rViewUtil(tNode, 1,maxLevel); }public static void rViewUtil(TreeNode tNode, int level, int maxLevel){if(tNode==null)return;if(maxLevel < level){System.out.print(tNode.value + "...

数据结构——java实现队列【代码】

顺序队列: 概念:队列是一种先进先出的线性表,只允许在一端插入,另一端删除。允许插入的一端称为队尾,允许删除的一端称为队头 顺序队列的实现: 1 import org.junit.jupiter.api.Test;2 3 /**4 * 顺序队列5 * @author wydream6 *7 */8 9 public class QueueSequence { 10 11 private String[] arr;//队列数组 12 private int end=0;//队尾标志 13 14 //向队列中添加元素 15 public void push(Str...

java-为什么对于数组/堆栈/队列和其他数据结构,Big O标记中没有最好的情况?

我正在浏览这份备忘单https://www.packtpub.com/sites/default/files/downloads/4874OS_Appendix_Big_O_Cheat_Sheet.pdf,我想知道为什么网站上没有提到最佳案例.为什么只有普通情况和最坏情况?解决方法:主要是出于相同的原因,您购买了汽车保险或医疗保险,但不购买中奖彩票,或者我是健康保险:防范异常(或恶意)的重大下行异常事件是很有价值的,但是没有必要“防御”类似的上涨事件. 第二个原因是,与最坏情况的保证(没有输入会触发该...

java-使用队列模拟交叉路口车辆的程序

嗨,我有这个课程的问题要解决. 这是问题: 设计一个程序来模拟交叉路口的车辆. 假设在四个方向的每个方向上都有一条车道,并且每个方向都设有红绿灯.随机改变各个方向上车辆的到达时间,并设置规律的换灯频率.运行您的方向,并设置定期的灯光变化频率.在设定的时间段内运行模拟以查看交叉点的“行为”. 课程要求: >应该用Java编码>使用适当的数据结构 如果有人对如何做有任何线索,请帮忙;我不知道.解决方法:要监视的一些有用行为包括...

Java-JBoss 5.1.0添加队列【代码】

如何将自定义队列添加到JBoss 5.1.0? 我找到了一种通过管理控制台执行此操作的方法,但是由于某些原因它仍然无法运行,因此我还需要能够快速轻松地将队列从一台JBoss Server移到另一台JBoss Server. 因此,基本上,我想知道是否存在一种在xml文件中创建自定义队列并将该文件添加到deploy文件夹的方法,就像您如何使用自定义数据源文件(mydatasource-ds.xml)一样. 谢谢.解决方法:在您实例的部署目录下创建一个以destinations-service.xm...

java-将消息发送到完整的JMS队列【代码】

我正在编写将消息发送到JMS队列的Java代码.我正在通过使用“ QueueSender.send()”来做到这一点. JMS队列itsels是sonicMQ,但这不重要. 我的问题是,有时JMS队列已满,而试图将消息发送到队列的线程却挨饿了. 在发送消息之前,有没有办法让我知道队列是否已满?在这种情况下,我希望将异常打印到日志中. 顺便说一句,JMS队列代码本身不在我手中.我只能更改客户端代码. 谢谢.解决方法:您可以异步发送消息,以便在ConnectionFactory中使用Co...

Java wait和notifyAll的使用,简单的阻塞队列实现【代码】【图】

wait,会使调用的线程进入等待状态,会释放所持有的对象锁(调用的时候也必须先获取到锁,否则会抛出异常 IllegalMonitorStateException) notifyAll、notify,会去唤醒应当前对象而等待的线程,(调用的时候也必须先获取到锁,否则会抛出异常 IllegalMonitorStateException) 顺便也记录一下join方法,调用join方法,会使当前线程进入等待,如果没有设置等待时间,就会等待另一个线程执行完成才返回(ps:调用join方法并不一定立刻...