java多线程处理任务
最近用到使用多线程处理给用户发送站内消息的问题,想到使用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多线程处理任务的更多相关文章
- Java多线程处理List数据
实例1: 解决问题:如何让n个线程顺序遍历含有n个元素的List集合 import java.util.ArrayList; import java.util.List; import org.apa ...
- java多线程处理
package com.copyFile; import java.io.BufferedReader;import java.io.File;import java.io.FileReader;im ...
- Java 多线程处理[全]
http://blog.csdn.net/ghsau/article/details/7421217 Java线程(一):线程安全与不安全 http://blog.csdn.net/ghsau/art ...
- Java多线程处理某个线程超时的问题
ExecutorService exec = Executors.newFixedThreadPool(4); List<Future<Integer>> futures = ...
- java多线程处理导入数据拆分List集合 同步处理插入数据
原文:https://www.2cto.com/kf/201612/581174.html import org.apache.log4j.Logger; import org.apache.poi. ...
- java 多线程处理一个list的集合
原文:http://blog.csdn.net/jenny8080/article/details/52100312 import java.util.ArrayList; import java.u ...
- Java多线程处理任务(摘抄)
很多时候,我们需要对一个庞大的队列或者二维数组进行处理.这些处理可能是循环的,比如给一个excel多个sheet的联系人列表发邮件.很幼稚的方法就是用一个或者两个FOR循环搞定,对于庞大的数据有得让你 ...
- java多线程处理问题
今天碰到个以前的线上bug需要处理下:问题是这样的,我们的app里面有个点赞的功能,点赞完后显示点赞人列表以及点赞数量,但是数量现在总是不准确.之后查看代码,发现点赞时候只是简单的向数据库添加了一条点 ...
- Java以基础类库
Java以基础类库JFC(Java Foundation Class)的形式为程序员提供编程接口API,类库中的类按照用途归属于不同的包中. (一)java.lang包 Java最常用的包都属于该包, ...
随机推荐
- openssh for windows
- T-SQL 高级编程
在Sql Server 中访问数据库一般有2种方式: 1.一种是使用应用程序编程接口API 2.数据库语句 变量:局部变量:以@为前缀,如@Age:全局变量以@@为前缀:(Ps:全局变量以系统定义和维 ...
- Unity编辑器的扩展:IMGUI
IMGUI 介绍 所有关于 Editor 的相关 UI,包括 Inspector.Hierarchy.Window.Game 视图上动态创建的那些半透明 UI.还有 Scene 视图上可添加的辅助显示 ...
- redis GEO地理位置命令介绍
GEOADD keylongitude latitude member [longitude latitude member ...] Available since 3.2.0. Time comp ...
- TCP/IP四层体系结构
1.数据链路层 2.网络层 3.传输层 4.应用层 , 其中IP是在第二层网络层中,TCP是在第3层传输层中, Internet体系结构最重要的是TCP/IP协议,是实现互联网络连接性和互操作性 ...
- 5.6 安装Virtual box
本以为安装虚拟机很复杂的样子,经过kevin一指点,发现soeasy.废话少说,直接上图片: 将安装包放到自己的目录下: 安装完后,可以在搜索框中搜索:virtual 会出现安装好的虚拟机盒子.
- 免密码ssh2登录
以下针对的是ssh2,而不是ssh.配置分两部分:一是对登录机的配置,二是对被登录机的配置,其中登录机为客户端,被登录机为服务端,也就是解决客户端到服务端的无密码登录问题.下述涉及到的命令,可以直接拷 ...
- redis系列:通过文章点赞排名案例学习sortedset命令
前言 这一篇文章将讲述Redis中的sortedset类型命令,同样也是通过demo来讲述,其他部分这里就不在赘述了. 项目Github地址:https://github.com/rainbowda/ ...
- Centos6安装SGE以及集群配置
最近给实验室的服务器集群安装SGE,摸索了一天多,踩了好些坑,现在将其安装和配置过程记录下来,以免以后需要使用时又忘记了. 一.准备工作 1.关闭集群中所有节点的防火墙 #service iptabl ...
- cogs 2123. [HZOI 2015] Glass Beads
2123. [HZOI 2015] Glass Beads ★★★ 输入文件:MinRepresentations.in 输出文件:MinRepresentations.out 简单对比时 ...