在 Warp 应用程序中,"设置"数据类型上提供了settingsFork
选项。这允许人们选择不同的分叉模型。何时应将其设置为默认值(void . forkIOWithUnmask
(以外的其他值?做出此决定时应考虑哪些因素?(例如,IO 与 CPU 绑定/FFI 的使用(。
如果您要操作线程本地状态,您可能希望使用 forkOS
来创建绑定线程(因为未绑定的 Haskell "线程"可能会在不同的操作系统线程上运行,因此首先破坏了使用线程本地存储的整个想法(。文档提到了OpenGL作为一个可能的例子。总的来说,我发现很难想出一种情况,即您不想要默认实现,它利用了内置的绿线程系统。人们普遍认为GHC的调度程序很难被击败。