執行緒中全域性變數和成員變數

2022-06-26 10:24:13 字數 975 閱讀 4634

1)執行緒處理了全域性變數

package com.medivh.thread;

public class threadtest3

}class first implements runnable

catch (interruptedexception e)

if(10==this.i)}}

}

測試結果:

first0

first1

first2

first3

first4

first5

first6

first7

first8

first9

至始至終只有乙個first物件,而方法中呼叫的是this.i 那麼就是全部變數,所以當全域性變數i==10時,run方法結束。

2)執行緒呼叫區域性變數

package com.medivh.thread;

public class threadtest3

}class first implements runnable

catch (interruptedexception e)

if(10==i)

}}}

測試結果:

first0

first1

first2

first3

first4

first5

first6

first7

first8

first9

first0

first1

first2

first3

first4

first5

first6

first7

first8

first9

run方法中呼叫的this.i的全域性變數,而只呼叫的方法中的變數,而方法執行了兩次,所以結果有20條。

區域性變數和成員變數 全域性變數

區域性變數可以與全域性變數重名,但是區域性變數會遮蔽全域性變數。要使用全域性變數,需要使用 在函式體內引用變數會用到同名的區域性變數而不是全域性變數,對於一些編譯器來說,在同乙個函式體內可以定義多個同名的區域性變數。例如我們可以在乙個函式內部,在兩個迴圈中都定義同名的區域性變數i,而區域性變數i的作...

PHP中全域性變數和超全域性變數

自定義全域性變數的作用域為當前的指令碼檔案的任意位置 函式或者方法啊之類的 但是要想用它們必須先執行一下 global variable語句 variable為要使用的全域性變數 或者是使用 global 變數名字 來呼叫。超全域性變數作用於也是為當前的指令碼檔案的任意位置,在使用的時候無需先執行 ...

7 多執行緒 全域性變數 共享全域性變數

多執行緒 全域性變數 共享全域性變數 多執行緒可以對全域性變數進行修改,修改後的結果會影響下乙個執行緒 程序不可以共享全域性變數,子程序是複製父程序的全域性變數,修改後互不影響 from threading import thread import time,random g num 100 def...