我主要的疑惑来自函数处理,函数编译后,最终变成计算机指令,以及一个函数地址
函数地址:
指令一
指令二
指令三

指令N
由于CPU不是真正的多任务,是按时间一个个的去分配给各个线程,由于我只有一个对象,那么不管多少个线程去调用对象的某个函数,最张还是去访问的还是同一个函数地址(这样的理解是否对?)如果我上面的理解是对的,那会不会当第一个线程运行到指令三的时间,CPU切换到第二个线程,第二个线程也调用同一个函数,又从指令一执行,把第一个线程调用时的数据给冲掉了,造成结果的不可预知?如果不是这样,那是如何处理的保证不出错?

解决方案 »

  1.   

    我来学习的,做好同步应该没问题
      

  2.   

    同步了的话没问题 没同步 就有问题了你要没看过有关同步的书 那你的想法很超前 
      

  3.   

    可以肯定会造成不可预知的后果,一个资源被多个线程同时访问,肯定会出现问题,除非同步起来,这样可以避免一些问题,但是这也有可能会发生死锁等其他问题,具体看你怎么写的-------------------------------
     编程菜鸟学堂QQ群144648357
      

  4.   

    对于共用数据的同步,我有一定的理解,现在主要就是对共用函数的不理解
      

  5.   

    多线程同步不是同步函数地址,而是同步在函数内共用堆内存的对象。
    只要在处理写对象时做一个写同步就行了。
      

  6.   

    每个线程均有自己独立的栈信息,线程分配的时间片用完后,会把一些在栈中分配的信息放到自己拥有的栈中。
    但堆是各线程共用的,所以一定要搞清楚堆和栈,下一步再考虑是否有必要进行同步,因为同步是一个并变串的工作,影响效率。
      

  7.   

    公用方法 是需要加上同步锁