RTRTRT,在对一个变量进行操作的时候保证程序其他部分不能修改!
12 回复
你问的是这个吗? http://cnodejs.org/topic/50b78af1637ffa41552a1be1
var obj = { greeting : "Hi!" };
Object.freeze(obj);
Object.isFrozen(obj); // true
是这样,我建立了一个socket连接,当有sock.on('data’, function(data) {…})时,我先把数据保存到内存,同时在这个连接内,还有一个定时器,一定时间将接受到的数据保存到数据库;sock.on()和setInterval(save, 30000);同时会用到一个标志量,我需要保证在sock.on()和setInterval其中一个用到改变标志量时,另一个不能改变~~
是这样,我建立了一个socket连接,当有sock.on('data’, function(data) {…})时,我先把数据保存到内存,同时在这个连接内,还有一个定时器,一定时间将接受到的数据保存到数据库;sock.on()和setInterval(save, 30000);同时会用到一个标志量,我需要保证在sock.on()和setInterval其中一个用到改变标志量时,另一个不能改变~~
@talentfs 注意node的单线程特点,在sock.on和setInterval 执行的时候,并不会再触发其他的sock.on和setInterval,换句话说,所有的任务都是串行的,不会出现你所说的“其中一个用到改变标志量时,另一个改变”的情况