zoukankan      html  css  js  c++  java
  • (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;
            }
     
  • 相关阅读:
    C语言实验报告
    C语言实验报告
    第四次作业4-树和二叉树
    第03次作业-栈和队列
    第02次作业-线性表
    Data_Structure01-绪论作业
    C语言第二次实验报告
    C语言实验报告
    第04次作业-树
    第03次作业-栈和队列
  • 原文地址:https://www.cnblogs.com/fdyang/p/11403774.html
Copyright © 2011-2022 走看看