线程

要启用线程支持,需要使用 —threads:on 命令行开关。 然后 system 模块包含几个线程原语。 请参阅低级线程API threadschannels 模块。 还有高级并行结构可用。见 spawn 更多细节。

Nim的线程内存模型与其他常见编程语言(C,Pascal,Java)完全不同:每个线程都有自己的(垃圾收集)堆,内存共享仅限于全局变量。 这有助于防止竞争条件。 GC效率得到了很大提高,因为GC永远不必停止其他线程并看到它们引用的内容。