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;
            }
        }
  • 相关阅读:
    redisLock redis分布式锁
    Mabitis中的#与$符号区别及用法介绍
    pring Scheduler定时器原理分析
    SpringBoot几种定时任务
    线程池的理解
    JVM的方法区和永久带是什么关系
    JVM老年代和新生代的比例
    IO 与 NIO
    对mysql乐观锁、悲观锁、共享锁、排它锁、行锁、表锁概念的理解
    TCP滑动窗口控制流量的原理
  • 原文地址:https://www.cnblogs.com/shidengyun/p/5609265.html
Copyright © 2011-2022 走看看