多个进程同时写某个文件需要加锁吗?
test.js
const fs = require('fs');
var time = (new Date()).getTime();
var write = fs.createWriteStream(__dirname + '/log.log', {flags: 'a'});
for(var i = 0; i < 2000000; i++){
write.write(time + "\taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n");
}
同时执行: node test.js node test.js 2个进程在写,奇怪的是,要过十几秒后,ll查看log.log的大小才会不为0。 并且查看内容看起来并不需要加锁。为什么呢?真的不需要加锁吗?
是一次性写入了整行的内容所以不需要加锁?
12 回复