作者:Only_cxy | 来源:互联网 | 2022-12-04 12:55
请问我想了解GHC的RTS是否同时处理阻塞读/写操作,即假设我的假设服务器只能并行处理CPU 1000线程,如果由于持久客户端套接字阻塞读取/写入而导致所有1000个forkIO被阻塞,并且还有另一个500个要处理的请求.
选项-A>另一个500请求是否必须等到1000 forkIO进程完成.
选项-B> Haskell通过有效地使用所有1000个CPU线程在内部处理(即并发,异步,并行,非阻塞)1000 + 500 forkIO.
仅供参考我已经阅读了C和Haskell(Network.Socket)的许多套接字教程(和博客),以了解Haskell(forkIO)和C如何处理(即并发,异步,并行,非阻塞),但是我并没有清楚地了解Haskell究竟是如何做到这一点的.
参考:
https://github.com/lpeterse/haskell-socket/issues/15#issuecomment-224382491