在其他线程创建之前初始化C#内存模型和非易失性变量
我有一个与C#内存模型和线程有关的问题.如果没有volatile关键字,我不确定以下代码是否正确.我担心的是,如果保证线程B在不使用volatile的情况下看到变量A值为1?当指令的顺序改变时,可能会发生这种情况.当然,将volatile添加到variableA声明将使代码正确.但是,它是否必要?我问,因为我在构造函数中编写了一些非易失性变量初始化的代码,稍后某些Timer线程使用这些变量,我不确定它是否完全正确.Java中的相同代码怎么样?