netcore 俩个线程乱序调整
class Program { public static long flgVal = 0; static void Main(string[] args) { int n = 100; Task.Run(() => DaMi(n)); Task.Run(() => LaoShu(n)); Console.Read(); } public async static Task LaoShu(int n) { for (int i = 0; i < n; i++) { while (true) { if (Interlocked.Read(ref flgVal) == 0) { break; } } Console.Write("老鼠"); Interlocked.Increment(ref flgVal); } } public async static Task DaMi(int n) { for (int i = 0; i < n; i++) { while (true) { if (Interlocked.Read(ref flgVal) == 1) { break; } } Console.Write("爱大米 "); Interlocked.Decrement(ref flgVal); } } }
作者:沐雪
文章均系作者原创或翻译,如有错误不妥之处,欢迎各位批评指正。本文版权归作者和博客园共有,如需转载恳请注明。
如果您觉得阅读这篇博客让你有所收获,请点击右下方【推荐】
为之网-热爱软件编程 http://www.weizhi.cc/