主要记录erlang中到进程字典到一些实现,算是自己的笔记。
首先在erlang编程过程中,proc dict是不可缺少的,简单易用高效...
当然也有它到缺点,这里不赘述。
erlang中,提供了几个bif函数,put&&get&&erase。
或许有人会说,stdlib下面也有相应到module,但是确切来说,那不是真正proc dict
proc dict不同ets,并发情况下,需要各种锁,所以dict的效率。。。。显而易见!
proc dict关联到相应到proc中。
/*erl_process.h*/
...
ProcDict *dictionary; /* Process dictionary, may be NULL */
..
ProcDict是定义:
typedef struct proc_dict {
unsigned int size;
unsigned int used;
unsigned int homeSize;
unsigned int splitPosition;
Uint numElements;
Eterm data[1]; /* The beginning of an array of erlang terms */
} ProcDict;
put:
if (p->dictionary == NULL) {
/* Create it