java创建run方法_java学习之- 创建线程run和start特点

标签(空格分隔): run,start

为什么做run方法的覆盖?

1.Thread类用于描述线程,该类就定义一个功能用于存储线程要运行的代码,该存储功能就是run方法;

也就是说Thread种的run方法,用于存储线程要运行的代码.

2.复写run方法的目的:将代码存储在run方法,让线程运行;

问题:

如下例子我们不调用start而是调用run方法会有什么不同?

class Demo extends Thread{

public void run(){//将运行的代码放在run方法中

for(int x=0;x<60;x++) {

System.out.println("demo run-----"+x);

}

}

}

class ThreadDemo{

public static void main(String[] args){

Demo d= new Demo();//创建好一个线程

d.run();

for(int x=0;x<60;x++){

System.out.println("helloworld!----"+x);

}

}

}

执行结果:

demo run-----0

demo run-----1

demo run-----2

demo run-----3

demo run-----4

demo run-----5

demo run-----6

demo run-----7

demo run-----8

demo run-----9

demo run-----10

demo run-----11

demo run-----12

demo run-----13

demo run-----14

demo run-----15

demo run-----16

demo run-----17

demo run-----18

demo run-----19

demo run-----20

demo run-----21

demo run-----22

demo run-----23

demo run-----24

demo run-----25

demo run-----26

demo run-----27

demo run-----28

demo run-----29

demo run-----30

demo run-----31

demo run-----32

demo run-----33

demo run-----34

demo run-----35

demo run-----36

demo run-----37

demo run-----38

demo run-----39

demo run-----40

demo run-----41

demo run-----42

demo run-----43

demo run-----44

demo run-----45

demo run-----46

demo run-----47

demo run-----48

demo run-----49

demo run-----50

demo run-----51

demo run-----52

demo run-----53

demo run-----54

demo run-----55

demo run-----56

demo run-----57

demo run-----58

demo run-----59

helloworld!----0

helloworld!----1

helloworld!----2

helloworld!----3

helloworld!----4

helloworld!----5

helloworld!----6

helloworld!----7

helloworld!----8

helloworld!----9

helloworld!----10

helloworld!----11

helloworld!----12

helloworld!----13

helloworld!----14

helloworld!----15

helloworld!----16

helloworld!----17

helloworld!----18

helloworld!----19

helloworld!----20

helloworld!----21

helloworld!----22

helloworld!----23

helloworld!----24

helloworld!----25

helloworld!----26

helloworld!----27

helloworld!----28

helloworld!----29

helloworld!----30

helloworld!----31

helloworld!----32

helloworld!----33

helloworld!----34

helloworld!----35

helloworld!----36

helloworld!----37

helloworld!----38

helloworld!----39

helloworld!----40

helloworld!----41

helloworld!----42

helloworld!----43

helloworld!----44

helloworld!----45

helloworld!----46

helloworld!----47

helloworld!----48

helloworld!----49

helloworld!----50

helloworld!----51

helloworld!----52

helloworld!----53

helloworld!----54

helloworld!----55

helloworld!----56

helloworld!----57

helloworld!----58

helloworld!----59

无论运行多少遍都是这样的,

上述的执行的条线就是和一般的程序一样了,run仅仅是对象调用,单线程程序而start是开启线程并执行该线程的run方法;

以上问题大家会在面试中经常被问到:调用start和调用run方法的区别:

这里:run方法是普通的单线程序,无论程序运行多少遍执行的结果都是一样的;

而start的方法:是开启线程并执行该线程的run方法,多线程,每次运行的结果都不一样;

练习:创建两个线程和主线程交替运行:

class Demo extends Thread{

private String name;

Demo(String name){

this.name=name;

}

public void run(){//将运行的代码放在run方法中

for(int x=0;x<60;x++) {

System.out.println(name+"demo run-----"+x);

}

}

}

class ThreadDemo{

public static void main(String[] args){

Demo d1= new Demo("one");//创建好一个线程

Demo d2= new Demo("two");

d1.start();

d2.start();

for(int x=0;x<60;x++){

System.out.println("helloworld!----"+x);

}

}

}

执行结果:

onedemo run-----0

onedemo run-----1

onedemo run-----2

onedemo run-----3

onedemo run-----4

onedemo run-----5

onedemo run-----6

onedemo run-----7

onedemo run-----8

onedemo run-----9

onedemo run-----10

onedemo run-----11

onedemo run-----12

onedemo run-----13

onedemo run-----14

onedemo run-----15

onedemo run-----16

onedemo run-----17

onedemo run-----18

onedemo run-----19

onedemo run-----20

onedemo run-----21

onedemo run-----22

onedemo run-----23

onedemo run-----24

onedemo run-----25

onedemo run-----26

onedemo run-----27

onedemo run-----28

twodemo run-----0

twodemo run-----1

twodemo run-----2

twodemo run-----3

twodemo run-----4

twodemo run-----5

twodemo run-----6

twodemo run-----7

twodemo run-----8

twodemo run-----9

onedemo run-----29

twodemo run-----10

twodemo run-----11

twodemo run-----12

twodemo run-----13

twodemo run-----14

twodemo run-----15

twodemo run-----16

twodemo run-----17

twodemo run-----18

twodemo run-----19

twodemo run-----20

twodemo run-----21

twodemo run-----22

twodemo run-----23

twodemo run-----24

twodemo run-----25

twodemo run-----26

twodemo run-----27

twodemo run-----28

twodemo run-----29

twodemo run-----30

twodemo run-----31

twodemo run-----32

twodemo run-----33

twodemo run-----34

twodemo run-----35

twodemo run-----36

twodemo run-----37

twodemo run-----38

twodemo run-----39

twodemo run-----40

twodemo run-----41

twodemo run-----42

twodemo run-----43

twodemo run-----44

twodemo run-----45

twodemo run-----46

twodemo run-----47

twodemo run-----48

twodemo run-----49

twodemo run-----50

twodemo run-----51

twodemo run-----52

twodemo run-----53

twodemo run-----54

helloworld!----0

twodemo run-----55

onedemo run-----30

twodemo run-----56

twodemo run-----57

twodemo run-----58

twodemo run-----59

helloworld!----1

onedemo run-----31

onedemo run-----32

onedemo run-----33

onedemo run-----34

onedemo run-----35

onedemo run-----36

onedemo run-----37

onedemo run-----38

onedemo run-----39

onedemo run-----40

onedemo run-----41

onedemo run-----42

onedemo run-----43

onedemo run-----44

onedemo run-----45

onedemo run-----46

onedemo run-----47

onedemo run-----48

onedemo run-----49

onedemo run-----50

onedemo run-----51

onedemo run-----52

onedemo run-----53

onedemo run-----54

onedemo run-----55

onedemo run-----56

onedemo run-----57

onedemo run-----58

onedemo run-----59

helloworld!----2

helloworld!----3

helloworld!----4

helloworld!----5

helloworld!----6

helloworld!----7

helloworld!----8

helloworld!----9

helloworld!----10

helloworld!----11

helloworld!----12

helloworld!----13

helloworld!----14

helloworld!----15

helloworld!----16

helloworld!----17

helloworld!----18

helloworld!----19

helloworld!----20

helloworld!----21

helloworld!----22

helloworld!----23

helloworld!----24

helloworld!----25

helloworld!----26

helloworld!----27

helloworld!----28

helloworld!----29

helloworld!----30

helloworld!----31

helloworld!----32

helloworld!----33

helloworld!----34

helloworld!----35

helloworld!----36

helloworld!----37

helloworld!----38

helloworld!----39

helloworld!----40

helloworld!----41

helloworld!----42

helloworld!----43

helloworld!----44

helloworld!----45

helloworld!----46

helloworld!----47

helloworld!----48

helloworld!----49

helloworld!----50

helloworld!----51

helloworld!----52

helloworld!----53

helloworld!----54

helloworld!----55

helloworld!----56

helloworld!----57

helloworld!----58

helloworld!----59

如果使用run方法:

class Demo extends Thread{

private String name;

Demo(String name){

this.name=name;

}

public void run(){//将运行的代码放在run方法中

for(int x=0;x<60;x++) {

System.out.println(name+"demo run-----"+x);

}

}

}

class ThreadDemo{

public static void main(String[] args){

Demo d1= new Demo("one");//创建好一个线程

Demo d2= new Demo("two");

d1.run();

d2.run();

for(int x=0;x<60;x++){

System.out.println("helloworld!----"+x);

}

}

}

执行结果:

onedemo run-----0

onedemo run-----1

onedemo run-----2

onedemo run-----3

onedemo run-----4

onedemo run-----5

onedemo run-----6

onedemo run-----7

onedemo run-----8

onedemo run-----9

onedemo run-----10

onedemo run-----11

onedemo run-----12

onedemo run-----13

onedemo run-----14

onedemo run-----15

onedemo run-----16

onedemo run-----17

onedemo run-----18

onedemo run-----19

onedemo run-----20

onedemo run-----21

onedemo run-----22

onedemo run-----23

onedemo run-----24

onedemo run-----25

onedemo run-----26

onedemo run-----27

onedemo run-----28

onedemo run-----29

onedemo run-----30

onedemo run-----31

onedemo run-----32

onedemo run-----33

onedemo run-----34

onedemo run-----35

onedemo run-----36

onedemo run-----37

onedemo run-----38

onedemo run-----39

onedemo run-----40

onedemo run-----41

onedemo run-----42

onedemo run-----43

onedemo run-----44

onedemo run-----45

onedemo run-----46

onedemo run-----47

onedemo run-----48

onedemo run-----49

onedemo run-----50

onedemo run-----51

onedemo run-----52

onedemo run-----53

onedemo run-----54

onedemo run-----55

onedemo run-----56

onedemo run-----57

onedemo run-----58

onedemo run-----59

twodemo run-----0

twodemo run-----1

twodemo run-----2

twodemo run-----3

twodemo run-----4

twodemo run-----5

twodemo run-----6

twodemo run-----7

twodemo run-----8

twodemo run-----9

twodemo run-----10

twodemo run-----11

twodemo run-----12

twodemo run-----13

twodemo run-----14

twodemo run-----15

twodemo run-----16

twodemo run-----17

twodemo run-----18

twodemo run-----19

twodemo run-----20

twodemo run-----21

twodemo run-----22

twodemo run-----23

twodemo run-----24

twodemo run-----25

twodemo run-----26

twodemo run-----27

twodemo run-----28

twodemo run-----29

twodemo run-----30

twodemo run-----31

twodemo run-----32

twodemo run-----33

twodemo run-----34

twodemo run-----35

twodemo run-----36

twodemo run-----37

twodemo run-----38

twodemo run-----39

twodemo run-----40

twodemo run-----41

twodemo run-----42

twodemo run-----43

twodemo run-----44

twodemo run-----45

twodemo run-----46

twodemo run-----47

twodemo run-----48

twodemo run-----49

twodemo run-----50

twodemo run-----51

twodemo run-----52

twodemo run-----53

twodemo run-----54

twodemo run-----55

twodemo run-----56

twodemo run-----57

twodemo run-----58

twodemo run-----59

helloworld!----0

helloworld!----1

helloworld!----2

helloworld!----3

helloworld!----4

helloworld!----5

helloworld!----6

helloworld!----7

helloworld!----8

helloworld!----9

helloworld!----10

helloworld!----11

helloworld!----12

helloworld!----13

helloworld!----14

helloworld!----15

helloworld!----16

helloworld!----17

helloworld!----18

helloworld!----19

helloworld!----20

helloworld!----21

helloworld!----22

helloworld!----23

helloworld!----24

helloworld!----25

helloworld!----26

helloworld!----27

helloworld!----28

helloworld!----29

helloworld!----30

helloworld!----31

helloworld!----32

helloworld!----33

helloworld!----34

helloworld!----35

helloworld!----36

helloworld!----37

helloworld!----38

helloworld!----39

helloworld!----40

helloworld!----41

helloworld!----42

helloworld!----43

helloworld!----44

helloworld!----45

helloworld!----46

helloworld!----47

helloworld!----48

helloworld!----49

helloworld!----50

helloworld!----51

helloworld!----52

helloworld!----53

helloworld!----54

helloworld!----55

helloworld!----56

helloworld!----57

helloworld!----58

helloworld!----59

总结:run方法无论执行多少次结果都一样,而start是开启多线程的,每次执行的结果根据CPU执行结果,每次都不一样;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值