• (C#- 多线程) 在线程中创建object,共享问题。


    研究如下问题:

    1. 在一个进程的主线程中创建一个Object,其他线程都可以访问这个Object,并操作Object的方法。 - 多线程同步问题。

    2. 在一个进程的多个线程里面,每个线程都创建同一个Class的Object,并操作Object的方法。 - 会有同步问题吗,如果这个Object是个Singleton呢?

    这两个问题可以理解为作用域的范围的问题。

    第1个问题中,在主线程中诞生的Object对于多个线程来说是全局变量。

    第2个问题中,在各个线程中诞生的Object对于每个线程来说是局部变量。其作用域范围只在各自的线程中,在内存中的存储都在不同的位置。通过code也可以判断

            static int GetObjectReferenceAddress(Object obj)
            {
                GCHandle handle = GCHandle.Alloc(obj, GCHandleType.WeakTrackResurrection);
                int address = GCHandle.ToIntPtr(handle).ToInt32();
                return address;
            }
     
  • 相关阅读:
    雨天拍照技巧
    was8.5和aop的问题:JVMVRFY013 违反类装入约束o
    Docker Swarm
    Docker compose
    docker 网络
    dockerFile
    docker容器数据卷
    docker容器数据卷
    dokcer镜像详解
    Portainer可视化面板安装
  • 原文地址:https://www.cnblogs.com/fdyang/p/11403774.html
Copyright © 2020-2023  润新知