liuhan907 最近的时间轴更新
liuhan907

liuhan907

V2EX 第 367313 号会员,加入于 2018-12-02 17:11:50 +08:00
liuhan907 最近回复了
6 天前
回复了 kikione 创建的主题 程序员 分布式没有全局时间
@whevether 网关不是单点那还不是回到这个问题上来了
@forgottencoast 懒,这玩意一写就是几百行还得加注释和两份代码对比,不想写,又不是做教程。
9 天前
回复了 james2013 创建的主题 MySQL 3 亿 mysql 分表数据根据条件分页查询
我觉得最经济的按你的需求,应该是换分布式库了。
@Buges kt 那种模式和 await 没有什么区别,我反而觉得变得麻烦而且不直观。我认为良好的方式需要满足两个条件,一个是显示告诉调用者这个方法内是否有异步调用,第二个是显示进行异步等待。所以我并不太喜欢 kt 那个模式。以及我之前尝试给 kt 定制调度器,觉得比 C#麻烦。
@Buges 构造 task 和调度 task 当然没关系,但是隐式也就意味着你不会显示把 Task 当返回值写上,这样调用方是不能区分这个方法到底是想让你异步调用还是同步调用。kt 那个异步不管是用还是自定义调度,都比 C#麻烦的多,是个很好的例子。
@Buges 如果隐式插桩你还要控制调度,自定义调度实现起来会比显示调度更加麻烦,而且隐式调度还会有难以区分同步和异步调用的问题。
@Buges async/await 只是一个叫法,准确的说是需要能够自定义执行流的暂停和恢复。但是目前主流语言里能做到这点的基本都叫 async/await 所以说强依赖也当然没错。另外这个需求和分布式其实关系不大,单纯的只是和编程模型有关系。还有我想说的是,GC 不代表就一定要有开销但是降低复杂度。你看看最近微软对 dotnet 做的很多更新,显然是相反的操作,包括 Span<T> 、Memory<T> 等等这类东西。
@Buges 调度和 GC 完全是两回事,外加这和性能压根没关系。你是完全没了解过 actor 相关的东西么,要是这样的话你去看看 dotnet 组的 Orleans 项目,看看他们的编程模型如果不能自定义调度器的话,要怎么优雅的实现。
@Buges 为啥你非要往 GC 上拐呢,自定义调度和 GC 到底有什么关系。你要场景,那一个很简单的,房间类游戏,我希望房间内的请求都是单线程处理,但是房间内在处理耗时的异步操作的时候,我任然希望这个房间能处理只读请求。这不就是并发不并行,允许重入。其它的场景挺多的,再比方说 actor 模型那就是典型的这个样的场景。
@Buges 所以我都说了这个和 GC 根本一点关系都没有,自定义调度器的目的是为了控制并行和并发。一个最简单的例子,我需要不定数量的组,每组的协程只并发不并行,但是不同组的协程可以并行。同时我希望一些组的协程执行可以重入,另一些不能重入。Go 里你无法在不使用任何包装的情况下做到,而使用包装就会大幅降低性能同时代码难看难写。
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2041 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 15ms · UTC 02:59 · PVG 10:59 · LAX 18:59 · JFK 21:59
♥ Do have faith in what you're doing.