Java线程池 ExecutorService使用

ExecutorService有如下几个执行方法:

- execute(Runnable)
- submit(Runnable)
- submit(Callable)
- invokeAny(...)
- invokeAll(...)

execute方法:

@Test
    public void testUser() {
        ExecutorService threadPool = Executors.newScheduledThreadPool(3);

        threadPool.execute(new Runnable() {
            public void run() {
                try {
                    Thread.sleep(500);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                for (int i = 0; i < 10; i++) {
                    System.out.println("jkl");
                }

            }
        });

        System.out.println("结束");
        threadPool.shutdown();
    }

如上只会打印:结束

不会打印jkl字符串,因为这个方法就是没有办法获知task的执行结果。

 

 

submit(Runnable)execute(Runnable)区别是前者可以返回一个Future对象,通过返回的Future对象,我们可以检查提交的任务是否执行完毕,请看下面执行的例子:

Future future = executorService.submit(new Runnable() {
public void run() {
    System.out.println("Asynchronous task");
}
});

future.get();  //returns null if the task has finished correctly.

如果任务执行完成,future.get()方法会返回一个null。注意,future.get()方法会产生阻塞。

API接口管理平台-rap使用教程

官网视频教程:http://vodcdn.video.taobao.com/player/ugc/tb_ugc_bytes_core_player_loader.swf?version=1.0.20170327&vid=11622279&uid=11051796&p=1&t=1&rid=http%3A%2F%2Frap.hualala.com%2Fworkspace%2FmyWorkspace.do%3FprojectId%3D113&random=6666

初步使用感受:

可能相较于markdown、wiki这类编辑器,rap可以生成测试用例,方便前端人员进行测试。两类软件各有优点吧,编辑器偏向于快速的文档编辑,rap偏向于前端接口请求数据的生成。