java实现的任务队列

最近由于工作需要,自己完成了一个任务队列。实现了基本功能,且用法也很简单。
示例程序如下

package com.tone.example;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.tone.task.TaskProperty;
import com.tone.task.TaskSignature;
import com.tone.task.impl.BasicTask;
import com.tone.task.runner.TaskRunner;

/**
* 任务队列示例程序
* @author zlf
*/
public class TaskExample {
private TaskRunner taskRunner;

/**
* 做任务队列的初始化工作
*/
@Before
public void init() {
// 获取任务运行器
taskRunner = TaskRunner.getInstance();
// 将任务运行器放入线程进行调度
Thread thread = new Thread(taskRunner);
thread.start();
}

/**
* 等待任务执行完成,并做最后的退出工作
*/
@After
public void exit() throws InterruptedException {
Thread.sleep(600);
System.exit(0);
}

/**
* 最简单的任务运行示例
*/
@Test
public void example1() {
// 添加任务到任务运行器
taskRunner.addTask(new BasicTask() {
@Override
public void run() {
System.out.println("This is running in task runner thread, and thread is " + Thread.currentThread());
}
});
}

/**
* 加入优先执行顺序的任务运行器
*/
@Test
public void example2() {
// 添加任务到任务运行器
taskRunner.addTask(new BasicTask(0) {
@Override
public void run() {
System.out.println("This is a normal task");
}
});
taskRunner.addTask(new BasicTask(-1) {
@Override
public void run() {
System.out.println("This is a task a bit high than normal");
}
});
}

/**
* 重复添加的任务只会运行第一个
*/
@Test
public void example3() {
// 添加任务到任务运行器
taskRunner.addTask(new BasicTask(TaskSignature.ONE) {
@Override
public void run() {
System.out.println("This is task one");
}
}, TaskProperty.NOT_REPEAT);
taskRunner.addTask(new BasicTask(TaskSignature.ONE) {
@Override
public void run() {
System.out.println("This is also task one");
}
}, TaskProperty.NOT_REPEAT);
}

/**
* 重复添加的任务只会运行最后一个
*/
@Test
public void example4() {
// 添加任务到任务运行器
taskRunner.addTask(new BasicTask(TaskSignature.ONE) {
@Override
public void run() {
System.out.println("This is task one");
}
}, TaskProperty.NOT_REPEAT_OVERRIDE);
taskRunner.addTask(new BasicTask(TaskSignature.ONE) {
@Override
public void run() {
System.out.println("This is also task one");
}
}, TaskProperty.NOT_REPEAT_OVERRIDE);
}
}

有需要的朋友可以拿去参考。
只是一个任务队列的较简单,如果哪有朋友有好的代码或者建议,望不吝赐教。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值