关于Executor 接口
来源:互联网 发布:java io 装饰器模式 编辑:程序博客网 时间:2024/04/24 20:48
public interface Executor {
/**
* @param command the runnable task
* @throws RejectedExecutionException if this task cannot be
* accepted for execution
* @throws NullPointerException if command is null
*/
void execute(Runnable command);
/**
* @param command the runnable task
* @throws RejectedExecutionException if this task cannot be
* accepted for execution
* @throws NullPointerException if command is null
*/
void execute(Runnable command);
}
对于Executor 接口不甚理解,在此mark下
/** * ArrayDeque不是线程安全的,所以,用作堆栈时快于 Stack,在用作队列时快于 LinkedList * */public class MyExcutor implements Executor{private final Queue<Runnable> tasks = new ArrayDeque<Runnable>();private final Executor executor;private Runnable active;public MyExcutor(Executor executor){this.executor = executor;}@Overridepublic synchronized void execute(final Runnable command) {tasks.offer(new Runnable() {@Overridepublic void run() {try {command.run();} finally {scheduleNext();}}});if(active == null){scheduleNext();}}protected synchronized void scheduleNext() {if((active = tasks.poll()) != null){executor.execute(active);}}public void display(){if(tasks.isEmpty()){System.out.println("this is null");}for(Runnable r : tasks){System.out.println(r.toString());}}public static void main(String[] args) {Runnable r1 = new Runnable() {@Overridepublic void run() {int i = 0;System.out.println(" i = " + (++i));}};Runnable r2 = new Runnable() {@Overridepublic void run() {int a = 3;System.out.println(" a = " + (++a));}};Runnable r3 = new Runnable() {@Overridepublic void run() {int b = 7;System.out.println(" b = " + (++b));}};MyExcutor m = new MyExcutor(new Executor() {@Overridepublic void execute(Runnable command) {command.run();}});m.execute(r1);m.execute(r2);m.execute(r3);m.display();}}
0 0
- 关于Executor 接口
- Executor接口
- Executor接口
- 关于Executor框架相关接口和类的作用
- 关于java的future和Executor接口的理解
- java中Executor接口
- ExecutorService&Executor接口源码
- 使用Executor接口(1)
- SqlSession接口和Executor
- Executor接口介绍
- Executor Interfaces 执行器接口
- 并发教程之Executor接口
- 使用Executor接口(2)
- java.util.concurrent翻译----Executor框架--接口Executor
- 关于mybatis里面的Executor
- 关于mybatis里面的Executor
- 多任务处理:管理调度Executor 接口
- Executor
- 1002
- TreeMap练习:对学生对象的姓名进行升序排序
- 程序员面试金典(1) 字符串是否所有字符不同
- Java 中的equals
- Android studio 导入github工程
- 关于Executor 接口
- TreeMap基本练习:获取某字符串中的字母出现的次数
- 3.1 字符串移位包含的问题
- NPOI 在 System.IO.FileNotFoundException 中第一次偶然出现的“mscorlib.dll”类型的异常
- swagger-UI使用之app服务器(JavaApplication)
- 肖鑫铭:美指走低支撑避险,金银受益冲高回落
- listview自定义布局
- js实现修改文件(图片)路径
- Android EditText 清空按钮 小经验