- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我想在 Java 中做一些事情,如果使用并发例程编写会更清晰,但对于这些事情来说,全线程是严重的过度杀伤力。答案当然是使用 coroutines ,但标准 Java 库中似乎没有任何协程支持,并且快速谷歌上它会在这里或那里带来诱人的提示,但没有什么实质性的。
这是我目前发现的:
yield
功能,它只是返回 给调用者。适当的协程允许 yield
直接将控制权转移到任何已知的协程。 基本上这个库,重量级和可怕的,只为您提供对迭代器的支持,而不是 完全通用的协程。这就是我找到的所有内容。
我知道达芬奇机器中对协程的本地 JVM 支持,我也知道 JNI continuations trick这样做。然而,这些对我来说并不是很好的解决方案,因为我不一定能够控制我的代码将在哪个 VM 或平台上运行。 (事实上,任何字节码操作系统都会遇到类似的问题——如果可能的话,最好是纯 Java。例如,运行时字节码操作会限制我在 Android 上使用它。)
那么有没有人有任何指示?这甚至可能吗?如果没有,在 Java 7 中是否有可能?
编辑添加:
只是为了确保避免混淆,这是一个与 my other one 相关的问题。 ,但不一样。这个人正在寻找一个现有的实现,以避免不必要地重新发明轮子。另一个问题是如果这个问题被证明无法回答,人们将如何在 Java 中实现协程。目的是在不同的线程上保留不同的问题。
进一步编辑添加:
answer is selected .然而,一些评论是有序的。指向的库不是协程库,因此从技术上讲它不能回答我的问题。话虽如此,但它比上面链接的 Google 代码项目有两个优势:
最佳答案
Javaflow是一个延续实现,它可能会让你这样做。但它使用字节码操作。
不管怎样,感觉就像你在尝试用普通的 C 来做 OOP。这是可行的,但并不意味着你应该这样做。
关于java - Java 中可用的协程库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846428/
在我的设置中,我试图有一个界面 Table继承自 Map (因为它主要用作 map 的包装器)。两个类继承自 Table - 本地和全局。全局的将有一个可变的映射,而本地的将有一个只有本地条目的映射。
Rust Nomicon 有 an entire section on variance除了关于 Box 的这一小节,我或多或少地理解了这一点和 Vec在 T 上(共同)变体. Box and Vec
我是一名优秀的程序员,十分优秀!