最近用到使用多线程处理给用户发送站内消息的问题,想到使用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. 使用gradle上传项目到jcenter

    想不想把自己的库也上传到jcenter,然后只需要一名话 compile com.zzb.library:android-common:0.1.0 //(compile group_id:artifa ...

  2. CentOS 7 安装 Zabbix 3.0

    CentOS7搭建Zabbix 一.安装数据库: 1.  安装数据库:sudo  yum  grouinstall mariadb –y 2.  启动数据库:sudo systemctl  start ...

  3. [51nod1094]和为k的连续区间

    法一:暴力$O({n^2})$看脸过 #include<bits/stdc++.h> using namespace std; typedef long long ll; ],sum[]; ...

  4. BZOJ4085: [Sdoi2015]音质检测

    BZOJ4085: [Sdoi2015]音质检测 由于这题太毒了,导致可能会被某些人卡评测,于是成了一道权限题... 本蒟蒻表示没钱氪金... 但是可以去洛谷/Vijos搞搞事... 但是洛谷上只能评 ...

  5. 转——AHRS(航姿参考系统)和IMU(惯性测量单元)的区别

    AHRS(航姿参考系统)和IMU(惯性测量单元)的区别  [测试测量] 发布时间:2010-05-09 16:52:09  http://bbs.ednchina.com/BLOG_ARTICLE_1 ...

  6. SDUT2140图结构练习——判断给定图是否存在合法拓扑序列

    拓扑序列的判断方法为不存在有向环,代码实现的话有两种,一种是直接去判断是否存在环,较为难理解一些,另一种的话去判断结点入度,如果存在的入度为0的点大于一个,则该有向图肯定不存在一个确定的拓扑序列 #i ...

  7. html5增强的页面元素

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. vs2013提交项目到github

    提交项目之前必须先安装Git,下载地址:https://git-scm.com/download/win 1.登录Github后,在顶部导航栏选择New repository: 2.打开Create ...

  9. Codeforces Round #523 (Div. 2)D(二分,多重集)

    #include<bits/stdc++.h>using namespace std;const long long N=1e5+5;const long long MOD=1e9+7;l ...

  10. Oracle 11g 数据类型

    1.     字符类型 数据类型 长度 说明 CHAR(n BYTE/CHAR) 默认1字节,n值最大为2000 末尾填充空格以达到指定长度,超过最大长度报错.默认指定长度为字节数,字符长度可以从1字 ...