zoukankan      html  css  js  c++  java
  • 多线程16-SpinWait

        class Program
        {
            static volatile bool isCompleted = false;
            static void UserModeWait()
            {
                while(!isCompleted)
                {
                    Console.Write(".");
                }
                Console.WriteLine();
                Console.WriteLine("waiting is complete");
            }
            static void HybridSpinWait()
            {
                var w = new SpinWait();
                while(!isCompleted)
                {
                    w.SpinOnce();
                    Console.WriteLine(w.NextSpinWillYield);

                }
                Console.WriteLine("waiting is complete");
            }
            static void Main()
            {
                var t1 = new Thread(UserModeWait);
                var t2 = new Thread(HybridSpinWait);
                Console.WriteLine("running user mode waiting");
                t1.Start();
                Thread.Sleep(20);
                isCompleted = true;
                Thread.Sleep(TimeSpan.FromSeconds(1));
                isCompleted = false;
                Console.WriteLine("running hybrid soinwait construct waiting ");
                t2.Start();
                Thread.Sleep(5);
                isCompleted = true;
            }
        }
  • 相关阅读:
    Android app 简单的电话拨号器
    JavaWEB开发中的/到底代表什么
    springmvc json
    ForeignKey.on_delete
    django 实现指定文件合并成压缩文件下载
    常用SQL的优化
    数据库 两个简单实用的表级优化方法
    一天只能触发一次操作
    Ajax 生成流文件下载 以及复选框的实现
    django Q和F查询
  • 原文地址:https://www.cnblogs.com/shidengyun/p/5609265.html
Copyright © 2011-2022 走看看