我是Haskell的新手。最近,我試圖通過Haskell創建一個遊戲。在那場比賽中,我使用Concurrent創建多個線程。如何在Haskell中創建共享變量?
data Msg = C Char | Time
forkIO $ userThread chan
forkIO $ processThread startTimer
userThread :: MVar Msg -> IO()
userThread chan = forever $ do
c <- getChar
putMVar chan (C c)
showStr(show c)
processThread :: MVar Msg -> IO()
processThread chan = forever $ do
threadDelay (startTimer)
putMVar chan (Time)
我不知道如何定義線程之間共享的任何其他數據。我可以定義一個像C++(static double xxx)這樣的變量並且可以被任何函數訪問嗎?
你可以給一些C++代碼說明你的意思是什麼「共享變量」在這裏,你打算如何使用它? – leftaroundabout