长话短说,我正在尝试在Erlang中复制“睡眠理发师问题”。
在我的解决方案中,我决定对于所有正在等待的进程,将它们放入一个列表中。然后,在该进程轮到时,我会将该PID从列表中删除。
不幸的是,当我调用时,
有没有一种方法可以存储PID,以便我可以重新调用它们并正常使用?例如:
在我的解决方案中,我决定对于所有正在等待的进程,将它们放入一个列表中。然后,在该进程轮到时,我会将该PID从列表中删除。
不幸的是,当我调用时,
length(myListOfPids).
举个例子,IT失败了:
length([<0.46.0>]).
* 2: syntax error before: '<'
有没有一种方法可以存储PID,以便我可以重新调用它们并正常使用?例如:
PID ! message
...... 只是为了确认一下,这里是我运行程序时收到的实际错误:
=ERROR REPORT==== 1-Jul-2010::05:50:40 ===
Error in process <0.44.0> with exit value:
{badarg,[{erlang,length,[<0.46.0>]},{barber1,waitingRoom,2}]}
barber1是我的模块,waitingRoom是跟踪等待进程的函数。