多線程訪問全局變量和局部變量

若是一個變量是成員變量,那麼多個線程對同一個對象的成員變量進行操做時,它們對該成員變量是彼此影響的,也就是說一個線程對成員變量的改變會影響到另外一個線程。多線程

若是一個變量是局部變量,那麼每一個線程都會有一個該局部變量的拷貝(即使是同一個對象中的方法的局部變量,也會對每個線程有一個拷貝),一個線程對該局部變量的改變不會影響到其餘線程。併發

這是由於成員變量和局部變量的生命週期不一樣,成員變量會在引用本類的對象時建立,隨着對象的銷燬而銷燬,因此多個線程併發訪問會彼此影響。而局部變量則是在訪問方法時建立,在結束方法時銷燬,因此在多線程併發訪問方法時,每一個線程多會建立各自的局部變量,於是不會有影響。線程

相關文章
相關標籤/搜索