当我运行类似:
Prelude> cycle "ab"
Run Code Online (Sandbox Code Playgroud)
我可以看到“ ab”的无限印刷。要停止它,我只需使用Ctrl+即可c。而且有效。
当我跑步时:
Prelude Data.List> nub $ cycle "ab"
Run Code Online (Sandbox Code Playgroud)
我无法阻止它。
题:
更新:
Ubuntu: version 18.10
GHCi: version 8.2.2
Run Code Online (Sandbox Code Playgroud) 给定Control.Concurrent.Async中的示例:
do a1 <- async (getURL url1)
a2 <- async (getURL url2)
page1 <- wait a1
page2 <- wait a2
Run Code Online (Sandbox Code Playgroud)
这两个getURL调用是在不同的OS线程上运行还是在不同的绿色线程上运行?
如果我的问题没有道理...说该程序仅在一个OS线程上运行,这些调用是否仍将同时进行?阻塞IO操作会阻塞整个OS线程以及该OS线程上的所有绿色线程,还是仅阻塞一个绿色线程?