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