Bru*_*uno 3 concurrency multithreading haskell
我正在尝试制作一个打印箭头的程序,直到用户按下回车键(参见下面的代码).
问题是,当我按回车键时,我在控制台中看到"停止"字符串,但它不会更改outputArrows函数中的m值.
我该如何分享州?
import Control.Concurrent
import Control.Concurrent.Async
import Control.Monad
waitForInput m = do
getLine
putStrLn "stop"
putMVar m True
outputArrows m = do
stop <- readMVar m
unless stop $ do
threadDelay 1000000
putStr ">"
outputArrows m
main = do
m <- newMVar False
th1 <- async (waitForInput m)
th2 <- async (outputArrows m)
wait th1
wait th2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |