1
JamesRuan 2014-12-14 03:04:53 +08:00 via Android 1
erlang是虚拟机环境运行的。
如果你说的semaphore是操作系统层面的意思,那那在erlang里是找不到的。 如果说的是erlang虚拟机实现层面,erlang目前已经支持smp了,concurrency的多核支持大概是pthread上做的,控制机制怕是要读代源码了。 而在应用层面,erlang的concurrency是基于message passing的actor model,不存在共享对象,用不到semaphore。 抛个砖头,等更了解的人来说。 |
2
ffffwh 2014-12-14 05:37:41 +08:00 1
信号量一般是用共享内存+锁实现的。题意是让你用message passing实现一遍。
大概是一个actor做信号量,别人向它发送消息来要求p/v操作。 |