单例模式-多个线程使用单例模式用同一个对象去写日志文件,还要不要加锁呀?
Q:
在C#中,多个线程使用单例模式,用一个对象去写日志文件(一个文件系统,同一时刻只能有一个线程去写),我们还要不要加锁?
疑问:他不是一个多线程单例模式嘛,而且用同一个对象去写的呀!为什么我还必须去加锁呢?
S:
当他们使用的同一个对象时,系统会在内存分配一块内存空间,多线程这个时候具有多个数据执行流去利用那一块内存去写日志,这个时候不就是并发了吗?这样每个操作流就会启动操作日子多次,我们这个时候就必然要去加锁了!!!!