2作者: amano-kenji7 个月前原帖
# 轻量级线程和通道的优点 轻量级线程不需要操作系统线程的开销。你可以快速且廉价地启动大量轻量级线程。轻量级线程和操作系统线程可以通过通道进行通信。在进行IO/GPU密集型操作时,轻量级线程可以摆脱操作系统线程的束缚。 如果你通过通道在(轻量级)线程之间进行通信,你将获得同步编程的体验。没有函数的颜色(异步颜色 + 同步颜色)。 这个同步并发编程模型的良好例子包括goroutine、Clojure的core.async、JVM虚拟线程、Janet的fiber等。Clojure的core.async go块状态机不需要对运行时环境进行修改。 # 轻量级线程和通道的缺点 同步并发有一些权衡。我读到内置轻量级线程所需的更改可能会使其他语言通过FFI(外部函数接口)与受影响的语言交互变得困难。我怀疑这可以通过未来的研究来克服? 错误无法在线程外传播,因此你必须在线程中处理错误,或者将错误值传递给其他线程。Go语言以没有异常而闻名。Go只有类似于内存溢出错误的恐慌(panic)。 # async/await语法的优点 除非你想像在C语言中那样定期轮询,否则async/await语法不需要对运行时环境进行更改,这使得其他语言通过FFI与受影响的语言交互变得更加容易。 然而,core.async的go块是基于宏的状态机,虽然基于宏的状态机需要一些注意,但它们不需要对运行时环境进行更改。 # async/await语法的缺点 Async和await是具有传染性的。任何接触到async代码的内容都会变成async。 # 我的比较 在隔离线程中处理异常并将错误值传递给其他线程,比起具有传染性的async/await语法要更好。在(轻量级)线程和通道中处理错误会变得有些繁琐,但在每个隔离线程中尽早处理异常可以减少未处理异常导致程序崩溃的可能性。
1作者: funerr7 个月前原帖
我在过去几个月里一直在使用Cursor,但我感觉可能已经达到了Cursor的极限。我发现它在记忆方面存在很多问题,随着我的代码库越来越大,它在处理我的单一代码库结构时也出现了一些问题。 1. 有没有更好的AI IDE能够记住我纠正它的结构性问题? 2. 有没有测试优先的AI IDE,能够帮助我查看随着时间的推移是否会破坏某些功能? 3. 你有什么推荐的IDE或者修复Cursor的建议吗?