practical haskell: producer-consumer多线程的实现

本文介绍了一个简单的并发消息传递实验,该实验使用Haskell语言实现。具体来说,一个线程负责发送消息,另一个线程接收消息,此过程重复进行一百万次。通过这种方式,可以测试线程间的消息传递效率。

一个线程发消息,一个线程收消息,重复很多遍。

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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值