多线程编程,使用同一个类的同一个线程函数。那么这个线程函数被多个CreateThread重入后,就代码段而言具体在CPU和内存是如何运行的?是一份拷贝还是多份拷贝?每个线程有各自的数据,互相之间对共享数据的访问通过同步实现访问控制。不解这块的理论知识。

解决方案 »

  1.   

    windows kernel programming好像是这么说的。那么对于这个函数的代码是装入到什么地方运行的?比如说在CPU内是一份拷贝还是多份拷贝?尤其是多CPU情况下,是不是每个CPU上运行的时候会冲代码段加载可执行code到CPU?
      

  2.   

    CPU是处理机只执行指令序列,不存储(让然来,现代的CPU都有缓存,可以存储一部分指令序列),程序是装载在内存中的。
    至于代码肯定就一份,就和DLL一样。
      

  3.   

    我的意思是这份代码加载到CPU执行的时候,那么在CPU内应该是两份运行实例,是么?如果多核CPU多线程应该是并行执行。对么?