C#多线程编程(5)--线程安全1

当你需要2个线程读写同一个数据时,就需要数据同步。线程同步的办法有:(1)原子操作;(2)锁。原子操作能够保证该操作在CPU内核中不会被“拆分”,锁能够保证只有一个线程访问该数据,其他线程在尝试获得有锁的数据时,会被拒绝,直到当前获得数据的线程将锁释放,其他线程才能够获得数据。

为什么要线程同步?

  我们先看一个需要数据同步的例子,

static void Main(string[] args){ bool flag = false; var t1 = new Thread(() => { if (flag) Console.WriteLine("Flag"); }); var t2 = new Thread(() => { flag = true; });
  t1.Start();
  t2.Start(); Console.ReadLine(); }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgdzw.html