2007-04-08 旧作。原载:http://blog.youkuaiyun.com/st_monad/article/details/1556189
一个线程发消息,一个线程收消息,重复很多遍。
import Control.Concurrent
main = do
m <- newEmptyMVar
end <- newEmptyMVar
forkIO (sequence_ [ putMVar m () | _ <- [1 .. 10000000] ])
forkIO (sequence_ [ takeMVar m | _ <- [1 .. 10000000] ] >> putMVar end ())
takeMVar end
zz from newsmth FuncProg faint.
import Control.Concurrent
main = do
m <- newEmptyMVar
end <- newEmptyMVar
forkIO (sequence_ [ putMVar m () | _ <- [1 .. 10000000] ])
forkIO (sequence_ [ takeMVar m | _ <- [1 .. 10000000] ] >> putMVar end ())
takeMVar end
zz from newsmth FuncProg faint.
一个线程发消息,一个线程收消息,重复很多遍。
import Control.Concurrent
main = do
m <- newEmptyMVar
end <- newEmptyMVar
forkIO (sequence_ [ putMVar m () | _ <- [1 .. 10000000] ])
forkIO (sequence_ [ takeMVar m | _ <- [1 .. 10000000] ] >> putMVar end ())
takeMVar end
zz from newsmth FuncProg faint.
本文介绍了一个简单的并发消息传递实验,该实验使用Haskell语言实现。具体来说,一个线程负责发送消息,另一个线程接收消息,此过程重复进行一百万次。通过这种方式,可以测试线程间的消息传递效率。

被折叠的 条评论
为什么被折叠?



