RTRTRT,在对一个变量进行操作的时候保证程序其他部分不能修改!
回复 (12)
W
A
Z
引用 myynode中都是单线程的,要锁干神马?
@talentfs 注意node的单线程特点,在sock.on和setInterval 执行的时候,并不会再触发其他的sock.on和setInterval,换句话说,所有的任务都是串行的,不会出现你所说的“其中一个用到改变标志量时,另一个改变”的情况
V
引用 myynode中都是单线程的,要锁干神马?
@talentfs sock.on 跟setInterval 都用到这个标志量,问题是有没有可能"同时会用到一个标志量"? 如果考虑到单线程的特性,好像不大可能“同时用到”
M
都说了,是单线程的,没有“同时”修改的情况!
L
引用 a272121742你问的是这个吗? http://cnodejs.org/topic/50b78af1637ffa41552a1be1
@a272121742 用Object.freeze()锁定对象后,突然又想修改这个对象,咋解锁啊?
A
T
引用 a272121742你问的是这个吗? http://cnodejs.org/topic/50b78af1637ffa41552a1be1
是这样,我建立了一个socket连接,当有sock.on('data', function(data) {....})时,我先把数据保存到内存,同时在这个连接内,还有一个定时器,一定时间将接受到的数据保存到数据库;sock.on()和setInterval(save, 30000);同时会用到一个标志量,我需要保证在sock.on()和setInterval其中一个用到改变标志量时,另一个不能改变~~
T
引用 myynode中都是单线程的,要锁干神马?
是这样,我建立了一个socket连接,当有sock.on('data', function(data) {....})时,我先把数据保存到内存,同时在这个连接内,还有一个定时器,一定时间将接受到的数据保存到数据库;sock.on()和setInterval(save, 30000);同时会用到一个标志量,我需要保证在sock.on()和setInterval其中一个用到改变标志量时,另一个不能改变~~
A
你问的是这个吗? http://cnodejs.org/topic/50b78af1637ffa41552a1be1
var obj = { greeting : "Hi!" };
Object.freeze(obj);
Object.isFrozen(obj); // true
C
单线程这个point很重要。感觉很多编程手法都因此而变了。
M
node中都是单线程的,要锁干神马?
参与回复
登录后即可参与回复。登录