我应该使用静态字段并互锁在一起吗?
作者:互联网
在需要为线程安全和原子操作提供静态字段的情况下,我应该使用静态字段并互锁在一起吗,默认情况下,静态字段是否是原子的?例如:
Interlocked.Increment(ref Factory.DefectivePartsCount);
谢谢.
解决方法:
是.
该字段(假设Int32)是原子的,不是因为它是静态的而是因为它是32位.
但是,Factory.DefectivePartsCount = 1需要对该变量进行读和写操作,因此整个操作都不是线程安全的.
标签:interlocked,multithreading,static,c 来源: https://codeday.me/bug/20191031/1978133.html