zoukankan      html  css  js  c++  java
  • COPIED VALUE 的本质意义

    定义一个值对象类型,使其实例是可复制的。当它用来和另一个线程通信时,确保复制该值

    此模式主要用于解决在多线程中没有必要进行同步的数据对象的传递——使用值传递方式,即可复制。

    故没有加锁开销,每一个副本可以随意改变,但是改变只针对副本本身发生,可以看作原型模式的另一种存在。

    C++中的复制构造函数即为此而生,

    C#中的Struct就是值对象类型的,

    而Java则需要手动进行对象的副本。

    简单示例,可以看出struct直接赋值之后得到的对象是一个副本,这是Copyed Value的本意

    using System;
    
    namespace ConsoleApplication1
    {
        struct CopyedValue
        {
            public int Age { get; set; }
            public string Name { get; set; }
        }
        class Program
        {
            static void Main(string[] args)
            {
                CopyedValue cv = new CopyedValue()
                {
                    Age = 25,
                    Name = "daniu"
                };
    
                var cv2 = cv;
                cv2.Name = "daniu2";
                cv2.Age = 26;
    
                Console.WriteLine(cv.Age);
                Console.WriteLine(cv.Name);
                Console.WriteLine(cv2.Age);
                Console.WriteLine(cv2.Name);
            }
        }
    }

     

  • 相关阅读:
    AlexNet详解3
    ReLU为什么比Sigmoid效果好
    AlexNet详解2
    AlexNet详解
    微波炉蒸馄饨
    FM与PM信号的表现形式
    HTML与CSS:结构与表现
    CentOS 7安装WordPress
    nginx gzip配置
    minIni: A minimal INI file parser
  • 原文地址:https://www.cnblogs.com/pengzhen/p/3579415.html
Copyright © 2011-2022 走看看