java中,任务队列,限定长度,随时添加

第一个问题,队列是一个比较大的范围么?就像集合的这种。
第二个问题,现在我的项目有一个对外接口要处理文件流,很耗费系统资源,
希望可以能做到可以系统内有10个任务进行,然后再调用接口生成的任务
在系统内等待前10个任务,有一个任务结束就向内添加一个,
万望大神指点,毫无头绪,恳请大家指教

0

5个回答

创建java线程池,设置几个核心线程、最大线程由你决定,并设置一个10个长度的队列,然后设置拒绝策略,可以选择不拒绝,那么当每个线程都有任务,并且队列已满,那么再进来的任务只有等待有某个线程执行完之后拿走队列中的一个,然后这个新任务就会加到队列的末尾去。

0
weixin_39919140
weixin_39919140 怎么监控这个对象变化呢?任务完成了,怎么通知另一个对象的任务加入到队列里?
大约一年之前 回复

队列可以大,也可以小。不知道你说的范围是什么意思,是是用场合还是能容纳数据的多少。
第二个问题,你可以用现成的任务队列,一般都叫 xxxMQ,比如ActiveMq、RabbitMQ,你可以google下用法。

0

java线程池完全满足你的需求,你可以找本书去研究下

0
zhaomin_g
_赵明 可以,你了解下ThreadPoolExecutor这个类
大约一年之前 回复
weixin_39919140
weixin_39919140 线程池可以在任务数为0的时候自动等待新任务加入么?
大约一年之前 回复

队列大小看内存配置,你这个需求内存最好大一些,10个任务最好弄个线程池来做,http://www.importnew.com/21889.html

0
xcgh
xcgh 可以的那个地址有线程计数器,可以试试
大约一年之前 回复
weixin_39919140
weixin_39919140 线程池可以在任务数为0的时候自动等待新任务加入么?希望可以就是有一个对象存放10个任务,然后再有一个对象存放待执行的任务,另一个集合少了一个任务,这边这个集合就拿出来一个任务执行,没有任务就自动等待新任务,这种情况,
大约一年之前 回复
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Okhttp任务队列工作原理
OkHttp
springboot添加task任务执行队列
主要分为三块: 任务task,TaskExecutor任务执行器,TaskQueue任务队列。 下面详细讲解一下: 任务task的接口ITask: public interface ITask { //执行方法 void run(); } 任务task的接口实现类: public class ActionAppTask implements ITask { ...
java 字符串指定长度
NULL 博文链接:https://xylonwang.iteye.com/blog/437488
搬砖中的小事之代码(三)-参数限定值大小范围的注解
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @Size(max, min) 被注释的元素的大小必须在指定的范围内
java JTextField限制输入长度
限制JTextField中输入的内容和长度只需重写PlainDocument类中的insertString方法 import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.PlainDocument; public class JTextFi...
java多线程任务队列模型
此篇文章将从任务队列的设计;任务调度的方式(串行和并行)。代码很简单,主要是设计的思想。任务队列final class PendingPostQueue { // 含有头、尾指针的链表结构实现队列 private PendingPost head; private PendingPost tail; // 入队列 synchronized void enqueu
C/C++传入数组及怎样限定传入数组的大小
很多人c和c++的初学者都知道这样一个事实:数组不能直接作为函数的形参,当传入一个数组名时,数组会退化为对应的指针类型。 例如考虑如下函数:void chuanrushuzu(int a[10]) { return;//没有实质内容,只是为了说明数组的传入 }这里函数的形参虽然指定了数组的大小,但实质上编译器是不认,在编译器严重,被传入的只是一个int*类型的指针,也就是说,在此例的函数中
在代码中如何限制一个Map的大小
今天遇到一个问题: 在session中放入了一个Map, 但是担心放入内容过多撑爆内存,想要限制这个Map的大小,应该如何实现呢? 其实LinkedHashMap就提供了简单的实现,代码如下: //构建一个map,大小限制为10。如果到达上限,再存值则会删除最先存入的值然后再存入新值 public class LinkedHashMapTest {     static int m
LimitQueue固定长度的队列
在开发过程中,有时会有这样的需求,一个固定长度的集合里,当收到新的数据时自动丢掉最旧的数据这样的队列结构。其实实现并不难,即一个队列结构的集合,在推送新数据时判断一下,当集合大小已经达到限制长度时自动丢掉最旧的数据。import java.util.LinkedList; public class LimitQueue<E>{ private int limit; //...
swingJava之JTextField限制输入长度
public static void addLengthLimit(JTextComponent component) { component.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { ...
Java/Android中的优先级任务队列的实践
本篇文章适用于Java和Android开发者,会从实现一个最简单的队列过渡到实现一个带有优先级的队列,使用生活中最常见的的例子结合讲解,保准你可以掌握基本的队列原理。
Redis实现任务队列
   实现任务队列之前,我们先了解一下使用任务队列有哪些好处:    1. 松耦合。生产者和消费者无需知道彼此的实现细节,只需要约定好任务的描述格式。这使得生产者和消费者可以由不同的团队使用不同的编程语言编写。    2. 易于扩展。消费者可以由多个,而且可以分布在不同的服务器中,借此可以轻易地降低单台服务器的负载。       要实现队列很自然就想到Redis的列表类型,以及LPUS...
java 自定义注解验证 (仅限于实体属性值上的注解)
java 自定义注解验证 原理基于java的反射和映射 可自己添加所需要的注解,本案例中只写了三个自定义注解类 本案例只花了半天时间,如有不好之处请多提提意见。谢谢!
创建ThreadPoolExecutor使用无界任务队列导致内存飙高问题的解决
1.问题: 在使用juc包的ThreadPoolExecutor创建线程池时候,可以选择不同类型的创建方法,使用Executors提供的newFixedThreadPool()方法时候,源码是这样的: public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolEx...
查看celery队列长度基于redis
在开发过程中有时我们会需要预估程序执行时间,但是如果是celery异步任务我们就需要知道任务数量了 本人使用redis作为队列存储,linux服务器,配置如下: BROKER_URL = 'redis://127.0.0.1:6379/2' quque 名称:celery 查询队列长度命令: redis-cli -n 2 llen celery 注释: -n:选择redis 数据...
java实现的任务队列
最近由于工作需要,自己完成了一个任务队列。实现了基本功能,且用法也很简单。 示例程序如下 [code="java"] package com.tone.example; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.tone.task.TaskPropert...
java 定制任务的使用Quartz,使用队列处理参数
使用Quartz来执行这个任务,当取回来邮件的时候,可能一次性取出来多封邮件,然而在发往另一个服务端的时候,没发送一封邮件就会将该邮件带的上传的附件的目录清空,这样的话在两封邮件同时发送的时候,可能导致后一封邮件的附件被清除而发送失败。本人做了一个队列,一次取回的多封邮件放在队列里面,然后定制任务,每隔一分钟去发一封邮件
【JAVA】简单实现一个阻塞任务队列
package p18.juc; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.CountDownLatch; import java.util.concurrent.locks.Condition; import java.util.c...
java后端限制输入的名字的汉字长度
最近在项目开发中,遇到一个情况,限制前端传过来的参数输入汉字的长度思路:将前端传过来的名字参数转换为字节数组 实际代码如下:try {    logger.info("持卡人姓名"+userbankcard.getName()+"持卡人姓名转换为数组长度"+namelength);    if(userbankcard.getName().getBytes("GBK").length>12)...
解决方案之任务队列
在一些系统中,会有对某些任务状态进行跟踪,如果任务失败需要重新执行任务。本文主要是针对这种请求提出解决方案,因为时间原因,方案还没有在代码中实现。但是经过和朋友的推演,是目前能想到的比较有效的方案了。鉴于本人才疏学浅,如果有某位大神有更好的解决方案,请一定不吝赐教,感谢不尽。。。
Unity之简易任务队列TaskQueue
Unity之简易任务队列TaskQueue
合理的设置线程池队列长度
在实际工作中,经常会用到线程池,那么如何设置线程池队列长度,如果长度设置的不合理就无法发挥出多线程的威力。那么队列长度究竟应该设置多大呢?其实要取决于使用场景?比如你是全程异步的系统你的队列设置为0,coreSize设置cpu核数。本文主要通过研究tomcat、Dubbo等业界成熟的产品是如何设置线程队列的。
Redis——任务队列
        很多博客网站中都会有发送邮件这个功能,发送邮件是一个双向数据的交互过程,如果使用单线程实现,很难避免会等待很长时间的情况出现,但碍于某些框架或语言不容易实现多线程,这时可以通过进程来实现。设想一个进程能够完成发邮件的功能,那么只要通知这个进程向指定的地址发送邮件就可以了。         通知的过程可以借助任务队列来实现。与任务队列交互的类有两种:一类是生产者,另一类是消费者。生...
Quartz 使用任务队列实现顺序调度
Quartz 使用任务队列实现顺序调度把需要并行的任务塞到一个任务队列里面,用一个线程去执行 var:package com.etc.clear.data.common;import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue;/** * 变量 * <p> * * @
Python操作Reids之任务队列
使用redis的lpush 和 brpop,我们可以实现一个简单模式的分布式程序。分布式,其实我也是一知半解,所以,就按照我所理解的分布式进行说明吧。 一个系统,采用了分布式的部署,假设有三个节点,通俗点说,三台机器上放了三个一模一样的程序,那么同时运行这三个程序时,如果他们要对同一个资源进行独占的访问,就会引发他们之间的竞争,由于是独占的,一个占了,其他两个就得站在那里干等着,如此以来,还是一
java 异步任务队列执行--需要注意的地方
参照1写的异步任务队列过程中,发现一些java基础知识掌握不够。 1)Iterable 类的forEach方法和for循环方法的不同: try { List&amp;lt;Future&amp;lt;Object&amp;gt;&amp;gt; futures = executor.invokeAll(tasks); futures.forEach(Future::get); // compilin...
java线程池之ThreadPoolExecutor(二):任务入队列和任务丢弃
除了前面描述涉及到的四个属性和ThreadFactory之外,还有两个分别是workQueue和handler,分别是BlockingQueue和RejectedExecutionHandler类型。 BlockingQueue只是一个接口,它所表达的是当队列为空或者已满的时候,需要阻塞以等待生产者/消费者协同操作并唤醒线程。其有很多不同的具体实现类,各有特点。有的可以规定队列的长度,也有一些则
怎样写一个任务队列
之前在用celery的时候,遇到了worker卡住的bug,于是认真的看了相关文档和代码,了解celery实现的原理。 其实核心原理非常简单: 1. 发送任务到队列 2. 守护程序worker死循环不断从队列取任务并执行 至于怎么包装传递这个任务,实现思路类似函数传参,有传值、传引用。
延时任务实现方式之队列
延时任务:可以使用DelayQueue队列来进行实现 写一个类实现Delayed这个接口,然后复写里面的2个方法 /* * 获取延时时间 */ @Override public long getDelay(TimeUnit unit) { return endtime-System.currentTimeMillis(); } ge...
Java线程实现Redis任务队列(生产者消费者)
注:接上篇IDEA整合Redis,本篇实现Redis的任务队列,Redis连接池具体配置看上篇。 一:写一个Jedis的工具类JedisUtil,将Jedis中的部分方法实现,代码如下: package com.wq.Util; import com.wq.RedisPool.RedisPool; import redis.clients.jedis.Jedis; import java.
java SWT:限制数值输入的Text文本框通用组件
控制Text只能输入数值只能输入数值的原理很简单,就是利用VerifyListener侦听器,响应VerifyEvent 事件,对输入内容进行检查。 具体如何难输入的内容是有效数字,网上有很多文章介绍如何实现,有是检查输入字符是不是0-9,这种方式有局限性,有的是利用正则表达式来判断,写得好复杂。 其实利用Float,Integer,Double这些类的静态方法valeOf(String)就能准
js任务队列
setTimeout和任务对列的联系,单线程优点,性能优化; 一、诡异的SETTIMEOUTsetTimeout(code, ms)函数是指在指定的毫秒数(ms)后调用函数或执行代码块,并返回一个整数,后续可以通过clearTimeout(num)传递这个整数来取消该定时器。setTimeout(function(){ console.log(1); }, 0); console.log(
线程按次序执行队列任务
package demo; import java.util.LinkedList; import java.util.Queue; import java.util.concurrent.CountDownLatch; public class ThreadOrder { static class TaskProcess implements Runnable { p
条件限制(where)
--精确限制条件 --模糊限制条件 select * from [dbo].[userinfo] where username like '%小节';-- select * from [dbo].[userinfo] where username like '陈%'; delete from [dbo].[userinfo] where username like '陈%';--删除姓陈的名...
SWT Text控件输入指定范围数字
此方法允许Text内为空,避免无法回退修改。private void setTextRange(Text text, int min, int max) { text.addVerifyListener(new VerifyListener() { @Override public void verifyText(VerifyEvent e) { Text text = (...
【javascript】异步-事件轮询-任务队列-工作队列(job queque)
异步 异步编程的核心: 现在 与 稍后 的部分之间的关系。 例子: 去吃饭排队,先拿一个号,排到了手机会有消息收到。在这个时候,可以取买点喝的。 现在:排队拿号 -&amp;amp;amp;gt; 买水 。 稍后:短信通知排到了,开吃! event loop 事件轮询 js引擎 遇到异步代码块,会将它放到【不一定是马上】一个任务队列里面,当主线程执行完所有代码的时候,会从这个任务队列里面 setTimeout 不...
Java 泛型方法/接口、泛型限定
文章目录
java使用正则表示式限制特殊字符的个数
package com.l.dubbo.service; import java.util.HashSet; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ThreadPoolTest { public static boolean ...
Celery——分布式任务队列
目录 Celery概述 Celery架构 Celery应用场景 Celery特性 消息代理 Celery序列化 从一个简单的例子开始 进阶用法 Celery概述 Celery 是一个由 Python 编写的简单、灵活、可靠的用来处理大量信息的分布式系统,它同时提供操作和维护分布式系统所需的工具。 Celery 专注于实时任务处理,支持任务调度。所谓任务就是消息,消息中的有效载...
事件循环和任务队列
事件循环: 调用栈执行完 ->  任务队列 (所有微观任务 -> 1个宏观任务 -> 所有微观任务 -> 1 个宏观任务 。。。。。。) 任务队列: setTimeout ajax 之类的都属于宏观任务   Promise属于微观任务  example:    setTimeout(() => { console.log(4) },0); new Promise
相关热词 c# gdi 占用内存 c#中遍历字典 c#控制台模拟dos c# 斜率 最小二乘法 c#进程延迟 c# mysql完整项目 c# grid 总行数 c# web浏览器插件 c# xml 生成xsd c# 操作sql视图