首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

多线程异步事件、任务自动部署

2012-12-26 
多线程异步事件、任务自动调度?package com.xiaonei.threadimport java.util.concurrent.ExecutorService

多线程异步事件、任务自动调度

?

package com.xiaonei.thread;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;/** *  要充分利用java的多线程特性,对于比较耗时,且用户无须等待通知的事件,可以考虑采用异步事件处理,本文模拟发送邮件,以及一个自动更新的任务调度: * @author Administrator * */public class ExecutorsTest {/** * 异步事件,发送邮件 */private ExecutorService service = Executors.newFixedThreadPool(8);/**自动更新调度线程*/private ScheduledExecutorService scService = Executors.newSingleThreadScheduledExecutor();/**自动更新时间间隔*/private static final int UPDATE_INTERVAL = 2; //sprivate  AtomicInteger counter = new AtomicInteger();  //计数器类private static ExecutorsTest instance = new ExecutorsTest();public static ExecutorsTest getInstance(){return instance;}private ExecutorsTest() {startUpdateMoniter();}private void startUpdateMoniter(){scService.scheduleWithFixedDelay(new Runnable() {@Overridepublic void run() {System.out.println("任务自动更新:"+System.currentTimeMillis()+",次数:"+getNextId());}}, UPDATE_INTERVAL, UPDATE_INTERVAL, TimeUnit.SECONDS);}public int getNextId(){return counter.incrementAndGet();}/** * 发送邮件 * @param emails * @return */public boolean sendMail(String emails){service.submit(new SendMailsTask(emails));return true;}public static void main(String[] args) {ExecutorsTest test = ExecutorsTest.getInstance();System.out.println(test.sendMail("yangxinyan@qq.com"));}}/** * 异步发送邮件 */class SendMailsTask implements Runnable{String emails = "";public SendMailsTask(String emails) {this.emails = emails;}@Overridepublic void run() {System.out.println("--------发送邮件--:"+emails+Thread.currentThread().getName());}}
? 1 楼 overshit 2012-09-21   我在项目里写了一个类似功能,建议博主吧邮件补全,还有对线程状态进行监控处理,日志系统添加 2 楼 luxing44530 2012-09-21   akka actor? 3 楼 Coolala_cs 2012-09-21   nice! 4 楼 liuInsect 2012-09-22   没看出个什么问题啊、 5 楼 carlosfu 2012-09-22   这么牛啊,昨天发的 800多点击啊。

热点排行