
1 niuroumian 2017-08-18 18:22:36 +08:00 via iPhone 用 BlockingQueue 在回掉函数里获取结果,然后主线程取出 |
2 doing 2017-08-18 18:24:02 +08:00 Callable+FutureTask 不可以吗 |
3 ghos 2017-08-18 18:25:40 +08:00 CompletableFuture ?这个可以支持执行完进行回调的 |
4 suantong 2017-08-18 18:29:23 +08:00 via Android 简单问题你复杂化了。 |
5 looplj 2017-08-18 18:30:30 +08:00 可以看下 Vert.x,就是全部异步,IO 的时候还是要在 Block 线程池中执行,使用的时候配置一下线程池数量就可以了。 其实用异步也只是增加一些并发量而已,QPS 的决定性因素还是 IO,这个也是 Servlet 还是主流的原因了。 而且,Java 写这种异步很麻烦的。 推荐用 Go 吧。 |
6 lowzoom 2017-08-18 19:26:14 +08:00 外层传个回调进来就可以了吧,为何一定要 return |
7 lujiajing1126 2017-08-18 19:44:22 +08:00 via iPhone Java 也有协程实现 |
9 quietin OP @lujiajing1126 有推荐的实现吗, 生产环境稳定可靠的 |
10 mrsatangel 2017-08-18 20:00:31 +08:00 协程:quasar 封装 IO: 裸写 nio/netty netty 和 quasar 都很稳定 |
11 lowzoom 2017-08-18 20:12:37 +08:00 CompletableFuture.supplyAsync(IO 函数) .thenAccept(外部传进来的回调函数) |
13 lowzoom 2017-08-18 20:55:12 +08:00 贴个代码来看看 |
14 dphdjy &nbs; 2017-08-18 21:44:48 +08:00 via Android 用 task 结束的时候 post 回去 |
15 lujiajing1126 2017-08-18 23:01:00 +08:00 via iPhone @quietin 10 楼已经提到了 |
16 rayingecho 2017-08-18 23:04:11 +08:00 可以用 Kotlin 的协程,跟 Java 完美互操作,不存在隔阂了 |
17 zhx1991 2017-08-19 00:14:06 +08:00 你描述的功能就是 future 啊 |
18 zhchyu999 2017-08-19 08:37:25 +08:00 |
19 yidinghe 2017-08-19 09:11:45 +08:00 via Android Netty 框架就是为了最大化网络吞吐量而编写的。 |
20 micean 2017-08-20 11:48:28 +08:00 试用过 java 的伪协程框架,性能还不如走线程池写同步代码 其实涉及到数据库操作的话,如果数据库不支持异步还是得挂线程去 wait 数据 |