lysm More On Multiprocessing

主要就是讲了erlang消息传输的一些知识
没有接收消息的部分,用于延时等待

sleep(T) ->
	receive
	after T -> ok
	end.

用于清理消息队列

flush() ->
	receive
		_ -> flush()
	after 0 ->
		ok
	end.

比较有意思的按照优先级处理队列

important() ->
	receive
		{Priority, Message} when Priority > 10 ->
			[Message | important()]
	after 0 ->
		normal()
	end.
normal() ->
	receive
		{_ , Message} ->
			[Message | normal()]
		after 0 ->
			[]
	end.

在处理消息的时候,会依次将邮箱里的消息拿出来进行匹配,匹配到了就进行处理后接着往下匹配直到没有消息匹配。没有匹配到的消息不会丢弃,会放回邮箱顶部,等待下一次的匹配。所以邮箱的无用消息过多会影响性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值