线程让出 cup 后做的事情?
复制自己的临时变量值到共享变量中吗?
还有其他的吗?
两个线程同时去累计一个数字 int i=0,后得到CPU的线程,复制到自己空间的值是i=0;还是i被第一线程修改后的值呢?

解决方案 »

  1.   

    不是很清楚lz的意思。
    线程切换之后cpu会做线程的上下文的保存,具体的代码中的变量的值是由你的代码决定的。
    如果第一个线程修改了i,然后第二个线程执行,第二个线程获取的i应该是修改后的值。
      

  2.   

    因为每个线程都有自己的临时栈区,线程在运行时候,将共享变量的值先复制到自己的栈空间中,运行计算;
    线程让出CPU后,是先将自己改变的值存放会共享变量中去,其他的线程去取。