最近用到使用多线程处理给用户发送站内消息的问题,想到使用java自带的线程池进行处理这个问题,具体如下:

定义一个线程:

package com.qlwb.util;

import org.apache.log4j.Logger;

import redis.clients.jedis.ShardedJedis;

import com.qlwb.common.redispool.BusinessRedisParam;
import com.qlwb.common.redispool.BusinessRedisPool;
/**
*
*
* @类编号:
* @类名称:DealUserTools
* @内容摘要: 消息处理
* @author:鹿伟伟
* @创建日期:2016年6月18日 下午1:23:03
* @修改人:
* @修改日期:
* @修改描述:简单描述修改的内容
* @version 1.0.0
*
*/
public class DealUserTools extends Thread{
private final Logger logger = Logger.getLogger(DealUserTools.class);
private int minId=0;
private int maxId=0;
public DealUserTools(int minId,int maxId){
this.maxId=maxId;
this.minId=minId;
}
public void run(){
ShardedJedis jedis=null;
logger.info("站内消息处理开始");
long t11=System.currentTimeMillis(); try {
//jedis=BusinessRedisPool.getInstance().getJedis();
for(int i=minId;i<=maxId;i++){
logger.info(Thread.currentThread().getName()+"=="+i);
//TODO
//业务处理
}
}
} catch (Exception e) {
logger.error("站内消息状态设置异常:", e);
}finally{
BusinessRedisPool.getInstance().returnResource(jedis);
}
long t12=System.currentTimeMillis();
System.out.println("站内消息处理用时"+(t12-t11)+"ms");
}
public static void main(String[] args) { }
}

使用线程池

ExecutorService pool = Executors.newFixedThreadPool(count);
Map<String,Object> mapParam=new HashMap<String, Object>();
try { for(int i=0;i<=count;i++){
Thread t1= new DealUserTools(minId,maxId);
pool.execute(t1);
}
pool.shutdown();
} catch (Exception e) {
logger.error("站内消息getUserId:", e);
}

java多线程处理任务的更多相关文章

  1. Java多线程处理List数据

    实例1: 解决问题:如何让n个线程顺序遍历含有n个元素的List集合 import java.util.ArrayList; import java.util.List; import org.apa ...

  2. java多线程处理

    package com.copyFile; import java.io.BufferedReader;import java.io.File;import java.io.FileReader;im ...

  3. Java 多线程处理[全]

    http://blog.csdn.net/ghsau/article/details/7421217 Java线程(一):线程安全与不安全 http://blog.csdn.net/ghsau/art ...

  4. Java多线程处理某个线程超时的问题

    ExecutorService exec = Executors.newFixedThreadPool(4); List<Future<Integer>> futures = ...

  5. java多线程处理导入数据拆分List集合 同步处理插入数据

    原文:https://www.2cto.com/kf/201612/581174.html import org.apache.log4j.Logger; import org.apache.poi. ...

  6. java 多线程处理一个list的集合

    原文:http://blog.csdn.net/jenny8080/article/details/52100312 import java.util.ArrayList; import java.u ...

  7. Java多线程处理任务(摘抄)

    很多时候,我们需要对一个庞大的队列或者二维数组进行处理.这些处理可能是循环的,比如给一个excel多个sheet的联系人列表发邮件.很幼稚的方法就是用一个或者两个FOR循环搞定,对于庞大的数据有得让你 ...

  8. java多线程处理问题

    今天碰到个以前的线上bug需要处理下:问题是这样的,我们的app里面有个点赞的功能,点赞完后显示点赞人列表以及点赞数量,但是数量现在总是不准确.之后查看代码,发现点赞时候只是简单的向数据库添加了一条点 ...

  9. Java以基础类库

    Java以基础类库JFC(Java Foundation Class)的形式为程序员提供编程接口API,类库中的类按照用途归属于不同的包中. (一)java.lang包 Java最常用的包都属于该包, ...

随机推荐

  1. CSS3新增的伪类

    Element1 ~ element2:选择前面有element1的所有element2元素 [attr ^= val] 属性值以val开头的元素 [attr $= val] 属性值以val结尾的元素 ...

  2. ueditor1.4.3jsp版在上传图片报"未找到上传文件"解决方案

    这是因为struts2的过滤器,解决方法是自定义一个过滤器 新建一个过滤器的类,代码: package com.filter; import java.io.IOException; import j ...

  3. [转载][效率工具推荐]Mathpix – 将图片数学公式转换为 LaTeX

    转自小众软件:Mathpix – 将图片数学公式转换为 LaTeX Mathpix 是一款跨平台(Windows.macOS.Linux)的 OCR 工具,它能够识别复杂的数学公式,并将其转换为 La ...

  4. WSDL入门

    WSDL: 网络服务描述语言, 是Web Service的描述语言,它全名:Web Services Description Language,是一门基于 XML 的语言,用于描述 Web Servi ...

  5. (转自精通Python设计模式)Python设计模式之创建型模式——2.建造者模式

    建造者模式将一个复杂对象的构造过程与其表现分离,这样,同一个构造过程可用于创建多个不同的表现. 我们来看个实际的例子,假设我们想要创建一个HMTL页面生成器,HTML页面的基本结构(构造组件)通常是一 ...

  6. 14. CTF综合靶机渗透(七)

    靶机说明 NinevehV0.3.7z是一个难度为初级到中级的BooT2Root/CTF挑战. VM虚机配置有静态IP地址(192.168.0.150) 目标 Boot to root:获得root权 ...

  7. 【mybatis批量插入】

    mybatis批量插入操作: MySQL:1.INSERT INTO TABLE_NAME(ID,NAME)VALUES(1,'张三'),(2,'李四')                  2.INS ...

  8. bzoj3171: [Tjoi2013]循环格(费用流)

    传送门 其实这题的建图并不难(虽然我并没有想出来) 首先,每一个点的入度和出度必须为$1$ 那么我们考虑拆点 每个点的出度点向它能到达的点的入度点连边,容量$1$,如果方向为原来的方向则费用$0$否则 ...

  9. 如何阻止<a>标签的页面跳转

    当页面中a标签不需要执行任何页面跳转行为时: 1.标签属性href,使其指向空或不返回任何内容 <a href="javascript:void(0);" >页面不跳转 ...

  10. Error:依赖版本不一致

    在编译unity时发现一个问题:依赖版本不一致 解决方案: 通过nugut管理在已安装项里选中要更新的dll文件