Java Runnable執行緒共享例項變數

2021-08-13 16:39:35 字數 4529 閱讀 3809

/**

*測試runnable執行緒可以共享例項變數

*/public

class

testrunnable

implements

runnable

public

static

void

main(string args)

}}

使用相同的runnable建立了100個執行緒,每個執行緒對其i變數加一併輸出,可發現100個執行緒輸出的i是連續的。

新執行緒0

i=1新執行緒5

i=6新執行緒4

i=5新執行緒3

i=4新執行緒2

i=3新執行緒1

i=2新執行緒10

i=11

新執行緒20

i=10

新執行緒8

i=9新執行緒15

i=13

新執行緒18

i=8新執行緒6

i=7新執行緒12

i=18

新執行緒11

i=17

新執行緒19

i=16

新執行緒26

i=26

新執行緒25

i=28

新執行緒7

i=15

新執行緒14

i=14

新執行緒13

i=12

新執行緒29

i=30

新執行緒28

i=29

新執行緒27

i=27

新執行緒24

i=22

新執行緒9

i=21

新執行緒17

i=25

新執行緒21

i=25

新執行緒22

i=25

新執行緒23

i=21

新執行緒16

i=19

新執行緒43

i=44

新執行緒42

i=43

新執行緒41

i=42

新執行緒40

i=42

新執行緒39

i=40

新執行緒38

i=39

新執行緒36

i=38

新執行緒37

i=38

新執行緒35

i=36

新執行緒34

i=35

新執行緒33

i=34

新執行緒32

i=33

新執行緒30

i=32

新執行緒31

i=31

新執行緒64

i=100

新執行緒87

i=100

新執行緒63

i=100

新執行緒71

i=98

新執行緒60

i=97

新執行緒59

i=95

新執行緒58

i=94

新執行緒55

i=93

新執行緒70

i=92

新執行緒69

i=91

新執行緒66

i=91

新執行緒68

i=90

新執行緒51

i=88

新執行緒73

i=87

新執行緒67

i=87

新執行緒62

i=85

新執行緒77

i=84

新執行緒65

i=83

新執行緒81

i=82

新執行緒84

i=81

新執行緒72

i=81

新執行緒61

i=80

新執行緒56

i=77

新執行緒57

i=78

新執行緒75

i=76

新執行緒88

i=75

新執行緒54

i=74

新執行緒52

i=74

新執行緒78

i=73

新執行緒85

i=72

新執行緒86

i=70

新執行緒53

i=71

新執行緒74

i=70

新執行緒76

i=60

新執行緒82

i=68

新執行緒91

i=67

新執行緒79

i=67

新執行緒95

i=65

新執行緒50

i=64

新執行緒49

i=63

新執行緒89

i=62

新執行緒90

i=59

新執行緒80

i=59

新執行緒83

i=58

新執行緒98

i=56

新執行緒92

i=55

新執行緒94

i=55

新執行緒93

i=54

新執行緒96

i=52

新執行緒97

i=51

新執行緒99

i=50

新執行緒47

i=49

新執行緒48

i=49

新執行緒46

i=47

新執行緒45

i=46

新執行緒44

i=45

但是如果使用不同的runnable例項,那麼他們將都是輸出1。

比如將上例中main方法中的建立runnable放入for迴圈內。

testrunnable st = new testrunnable(); 

for (int i = 0; i < 100; i++)

那麼其輸出就不會共享變數i

新執行緒0

i=1新執行緒5

i=1新執行緒6

i=1新執行緒4

i=1新執行緒3

i=1新執行緒2

i=1新執行緒1

i=1新執行緒16

i=1新執行緒15

i=1新執行緒14

i=1新執行緒12

i=1新執行緒11

i=1新執行緒10

i=1新執行緒9

i=1新執行緒8

i=1新執行緒7

i=1新執行緒33

i=1新執行緒32

i=1新執行緒31

i=1新執行緒30

i=1新執行緒29

i=1新執行緒28

i=1新執行緒27

i=1新執行緒26

i=1新執行緒25

i=1新執行緒24

i=1新執行緒23

i=1新執行緒22

i=1新執行緒21

i=1新執行緒20

i=1新執行緒19

i=1新執行緒18

i=1新執行緒17

i=1新執行緒70

i=1新執行緒50

i=1新執行緒62

i=1新執行緒79

i=1新執行緒64

i=1新執行緒53

i=1新執行緒51

i=1新執行緒54

i=1新執行緒52

i=1新執行緒57

i=1新執行緒71

i=1新執行緒55

i=1新執行緒56

i=1新執行緒58

i=1新執行緒69

i=1新執行緒76

i=1新執行緒89

i=1新執行緒59

i=1新執行緒88

i=1新執行緒66

i=1新執行緒72

i=1新執行緒61

i=1新執行緒60

i=1新執行緒80

i=1新執行緒63

i=1新執行緒13

i=1新執行緒65

i=1新執行緒67

i=1新執行緒87

i=1新執行緒68

i=1新執行緒75

i=1新執行緒73

i=1新執行緒74

i=1新執行緒77

i=1新執行緒78

i=1新執行緒81

i=1新執行緒82

i=1新執行緒85

i=1新執行緒83

i=1新執行緒84

i=1新執行緒86

i=1新執行緒90

i=1新執行緒96

i=1新執行緒91

i=1新執行緒93

i=1新執行緒92

i=1新執行緒94

i=1新執行緒95

i=1新執行緒97

i=1新執行緒99

i=1新執行緒98

i=1新執行緒49

i=1新執行緒48

i=1新執行緒47

i=1新執行緒46

i=1新執行緒45

i=1新執行緒44

i=1新執行緒43

i=1新執行緒42

i=1新執行緒41

i=1新執行緒40

i=1新執行緒39

i=1新執行緒38

i=1新執行緒37

i=1新執行緒36

i=1新執行緒35

i=1新執行緒34

i=1

共模扼流圈

因此,當2個線圈的繞轉方向發生錯亂時,往往會產生相反的效果。如圖5的上半部分所示,當等價電路上的黑點與線圈處於同一側時,磁力結合作為共模扼流圈發揮作用,如下半部分所示,當等價電路上的黑點處於線圈的另一側時,磁力結合將不再作為共模扼流圈發揮作用。可見,黑點位置表示每個線圈的磁力結合方向,並不意味著有黑...

共模扼流圈

共模扼流圈 common mode choke 也叫共模電感,是在乙個閉合磁環上對稱繞制方向相反 匝數相同的線圈。常用於過濾共模的電磁干擾,抑制高速訊號線產生的電磁波向外輻射發射,提高系統的emc,在實際應用中一般是在差分的訊號線上加共模電感。共模干擾,差模干擾 要明白共模電感的應用就得先明白什麼是...

Vmware workstation檔案共享

在vmware workstation設定好共享資料夾 在非共享資料夾指定目錄下執行以下命令 sudo vmhgfs fuse mnt hgfs 或 sudo vmhgfs fuse host mnt hgfs 此時共享資料夾只能root使用者使用 設定所有使用者可訪問命令 sudo vmhgfs ...