我是Erlang的新手,目前我在Erlang中编写读写器程序时遇到了问题。基本上,共享内存位置可以由任意数量的任务同时读取,但是当任务必须写入共享内存位置时,它必须具有独占访问权限。 我的想法是将读取/写入方法产生到不同的进程,在这些方法中只打印出类似“读者阅读”/“作家写作”的内容。
然而,信号量/互斥量的使用确实让我感到烦恼,我没有多线程/并发的背景。任何人都可以提供一些线索如何编写这样的程序?
答案 0 :(得分:9)
互斥锁和信号量只是定义两个并发进程/线程之间的同步点的一种方法。在erlang中,这些主要被在erlang进程之间发送和接收消息所取代。在erlang中执行此操作的惯用方法是:
数据处理的消息框将确保没有其他人可以与其他人同时写入数据。