问一个 ExecutorService 的问题

2021-09-29 20:28:27 +08:00
 zhangLLL

想知道 ExecutorService 提交的任务先 sleep1 秒是何意义?

    ExecutorService executor = Executors.newSingleThreadExecutor();
    executor.submit(() -> {
        try {
            Thread.sleep(1000);

            doSomething();

        } catch (Exception e) {
            logger.error("异步接口执行失败", e);
        }
    });
1524 次点击
所在节点    Java
8 条回复
billlee
2021-09-29 21:15:48 +08:00
为以后的优化留下空间?
SoloCompany
2021-09-29 21:55:24 +08:00
拿线程当协程用?先把写这个代码的人找出来打一顿吧
wangyu17455
2021-09-30 10:46:58 +08:00
理解不能
Kamiyu0087
2021-09-30 10:55:57 +08:00
可能是为了另一个任务优先执行?
不过这么写肯定是错的
ikas
2021-09-30 11:22:36 +08:00
没有上下文..无法知道干嘛的...
cnzjl
2021-09-30 13:55:26 +08:00
等上一个事务运行完毕(
BanGanExpert
2021-09-30 14:07:35 +08:00
newSingleThreadExecutor(),说白了就是先异步执行 doSomething()这部分代码,因为这里明确只用了一个线程,然后线程里面先等个 1 秒,
这玩意说明他就是想主线程的执行完撒操作在处理,理论上 1 秒只要不做什么访问数据库或者远程接口的东西基本很多事情已经完成了,不过这么写是要被打的,哈哈哈
cheng6563
2021-10-01 01:23:08 +08:00
当 defer 用呗。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/805237

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX