zoukankan      html  css  js  c++  java
  • [ThreadStatic] 注解

    线程静态,是指静态成员在每一个线程内都有一份实例,而静态成员则是整个进程共享一份实例,所以,此注解千万不要跟线程池一同使用,因为你永远不能确定你现在新启动的进程有没有对线程静态变量进行过操作,永远无法确定它的值。

    测试代码:

    class ThreadStaticTest
        {
            [ThreadStatic]
            public static int iStatic = 0;
    
            public void F(object obj)
            {
                
                for (int i = 0; i < 1000; i++)
                {
                    iStatic++;
                }
                Console.WriteLine(iStatic);
                Thread.Sleep(500);
    
            }
        }

    测试:

    ThreadStaticTest tst = new ThreadStaticTest();
                for (int i = 0; i < 20; i++)
                {
                    ThreadPool.QueueUserWorkItem(tst.F);
                    Thread.Sleep(500);
                }
    
                Console.WriteLine(ThreadStaticTest.iStatic);

    结果:

  • 相关阅读:
    P5107 能量采集
    P4655 [CEOI2017]Building Bridges
    P1129 [ZJOI2007]矩阵游戏
    P5299 [PKUWC2018]Slay the Spire
    P1625求和 giao精大杂烩
    背包
    根号分治
    CF963B
    国王游戏
    P6006 USACO 3SUM G
  • 原文地址:https://www.cnblogs.com/LouisGuo/p/4665061.html
Copyright © 2011-2022 走看看