1     /// <summary>
 2     /// 调用Volatile.Write来写入最后一个值
 3     /// 调用Volatile.Read来读取第一个值
 4     /// </summary>
 5     internal sealed class ThreadsSharingData
 6     {
 7         private int m_flag = 0;
 8 
 9         private int m_value = 0;
10 
11         //线程1
12         public void Thread1()
13         {
14             m_value = 5;
15 
16             //在将1写入m_flag之前,必须先将5写入m_value
17             Volatile.Write(ref m_flag, 1);
18         }
19 
20         //线程2
21         public void Thread2()
22         {
23             //m_value必然在读取了m_flag之后读取
24             if (Volatile.Read(ref m_flag) == 1)
25             {
26                 Console.WriteLine(m_value);
27             }
28         }
29     }

 

相关文章:

  • 2021-05-18
  • 2021-07-04
  • 2021-08-29
  • 2021-10-27
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-21
  • 2022-12-23
  • 2021-07-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-11
相关资源
相似解决方案