Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 在Yesod运行期货服务_Multithreading_Haskell_Yesod - Fatal编程技术网

Multithreading 在Yesod运行期货服务

Multithreading 在Yesod运行期货服务,multithreading,haskell,yesod,Multithreading,Haskell,Yesod,在Scala Play框架中,建议在未来(Future)中执行长时间运行的进程,如数据库访问,因为侦听web请求的工作线程数量有限。这通常是通过将进程包装在Future{…}中并让方法返回Future[SimpleRequest]来实现的 我应该在Yesod做类似的事情吗?如果是,怎么做 我知道Haskell(GHC)有非常轻的螺纹(“火花”)。YesSOD是否在单独的spark中启动每个请求?每个YesSOD请求都在其自己的绿色线程中运行(sparks在GHC land中实际上意味着其他内容,

在Scala Play框架中,建议在未来(
Future
)中执行长时间运行的进程,如数据库访问,因为侦听web请求的工作线程数量有限。这通常是通过将进程包装在
Future{…}
中并让方法返回
Future[SimpleRequest]
来实现的

我应该在Yesod做类似的事情吗?如果是,怎么做


我知道Haskell(GHC)有非常轻的螺纹(“火花”)。YesSOD是否在单独的spark中启动每个请求?

每个YesSOD请求都在其自己的绿色线程中运行(sparks在GHC land中实际上意味着其他内容,但听起来与您习惯于使用Scala的内容类似)。当与客户端的连接终止时,该线程将终止。如果您想让某些东西比该线程更长寿,请使用
forkIO
,或者在我看来,使用异步包更好